将状态模型Tukey hsd保存到Python熊猫数据帧中

时间:2016-11-09 22:06:18

标签: python statsmodels

我正在寻找一种方法来保存结果,以便将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 
---------------------------------------------

1 个答案:

答案 0 :(得分: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)