2016-11-09 16 views
1

Ich bin auf der Suche nach einer Möglichkeit, die Ergebnisse zu speichern, um die Ergebnisse der Tukeyhsd in einem Panda-Dataframe zu speichern. siehe unten:Speichern von Statmodels Tukey hsd in einen Python-Panda-Datenframe

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

Antwort

2

Ich habe keinen Zugriff auf Ihre Daten, daher kann ich das Ergebnis nicht replizieren. Ich habe stattdessen randomisierte Daten verwendet, um zu zeigen, dass das funktioniert. Alles, was Sie Ihrem Code hinzufügen müssen, ist der Pandas-Import und die letzte Zeile, die den Datenrahmen erstellt.

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) 

erzeugt die folgende Tabelle:

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

Und das ist, wie Sie den Datenrahmen erhalten:

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 

ich mit diesem für eine Weile selbst zu kämpfen, und fand schließlich die Lösung durch Überprüfung der Methoden für das Objekt, wie folgt:

Verwandte Themen