2016-11-09 131 views
1

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

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 
--------------------------------------------- 

回答

2

我没有访问您的数据,所以我不能复制结果。我用随机数据来代替,只是为了表明这是有效的。您需要添加到代码中的是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)