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