将statmodels Tukey hsd保存到Python pandas数据帧中

问题描述 投票:2回答:1

我正在寻找一种保存结果的方法,以将Tukeyhsd的结果保存到熊猫数据框中。见下文:

import matplotlib.pyplot as plt
import statsmodels.formula.api as smf
import statsmodels.stats.multicomp as multi 

 mcDate = multi.MultiComparison(df['Glucose'], df['Date'])
 Results = mcDate.tukeyhsd()
  print(Results)

    Multiple Comparison of Means - Tukey HSD,FWER=0.05
=============================================
group1 group2 meandiff  lower   upper  reject
---------------------------------------------
  A      B     20.35    7.388   33.312  True 
  A      C     -3.85   -16.812  9.112  False 
  B      C     -24.2   -37.162 -11.238  True 
---------------------------------------------
python statsmodels
1个回答
5
投票

我无权访问您的数据,因此无法复制结果。我改用随机数据,只是为了证明这是可行的。您需要添加到代码中的是pandas导入,以及创建数据框的最后一行。

import matplotlib.pyplot as plt
import statsmodels.formula.api as smf
import statsmodels.stats.multicomp as multi
import pandas as pd

# Random Data.
np.random.seed(0)
x = np.random.choice(['A','B','C'], 50)
y = np.random.rand(50)

# DataFrame.
mcDate = multi.MultiComparison(y,x)
Results = mcDate.tukeyhsd()
print(Results)

产生下表:

============================================
group1 group2 meandiff  lower  upper  reject
--------------------------------------------
  A      B     0.1506   -0.07  0.3712 False 
  A      C     0.1105  -0.1278 0.3487 False 
  B      C    -0.0401  -0.2865 0.2063 False 
--------------------------------------------

而且,这就是获取数据框的方式:

df = pd.DataFrame(data=Results._results_table.data[1:], columns=Results._results_table.data[0])

print(df)

group1 group2  meandiff   lower   upper  reject
0      A      B    0.1506 -0.0700  0.3712   False
1      A      C    0.1105 -0.1278  0.3487   False
2      B      C   -0.0401 -0.2865  0.2063   False

我本人为此苦了一段时间,最终通过查看对象的方法找到了解决方案,如下所示:

dir(Results)
© www.soinside.com 2019 - 2024. All rights reserved.