2016-11-09 132 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)