我正在寻找一种保存结果的方法,以将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
---------------------------------------------
我无权访问您的数据,因此无法复制结果。我改用随机数据,只是为了证明这是可行的。您需要添加到代码中的是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)