Ich bin mit OLS Regression pandas.stats.api.ols
ein groupby
mit dem folgenden Code:Drucke OLS Regression Zusammenfassung Textdatei
from pandas.stats.api import ols
df=pd.read_csv(r'F:\file.csv')
result=df.groupby(['FID']).apply(lambda d: ols(y=d.loc[:, 'MEAN'], x=d.loc[:, ['Accum_Prcp', 'Accum_HDD']]))
for i in result:
x=pd.DataFrame({'FID':i.index, 'delete':i.values})
frame = pd.concat([x,DataFrame(x['delete'].tolist())], axis=1, join='outer')
del frame['delete']
print frame
aber dies gibt den Fehler:
AttributeError: 'OLS' object has no attribute 'index'
Ich habe über 2.000 Artikel in meiner Gruppe durch und wenn ich jedes ausdrucke, sehen sie ungefähr so aus:
-
------------------------Summary of Regression Analysis-------------------------
Formula: Y ~ <Accum_Prcp> + <Accum_HDD> + <intercept>
Number of Observations: 79
Number of Degrees of Freedom: 3
R-squared: 0.1242
Adj R-squared: 0.1012
Rmse: 0.1929
F-stat (2, 76): 5.3890, p-value: 0.0065
Degrees of Freedom: model 2, resid 76
-----------------------Summary of Estimated Coefficients------------------------
Variable Coef Std Err t-stat p-value CI 2.5% CI 97.5%
--------------------------------------------------------------------------------
Accum_Prcp 0.0009 0.0003 3.28 0.0016 0.0004 0.0015
Accum_HDD 0.0000 0.0000 1.98 0.0516 0.0000 0.0000
intercept 0.4750 0.0811 5.86 0.0000 0.3161 0.6340
---------------------------------End of Summary---------------------------------
Ich möchte in der Lage sein, jeden zu einem CSV zu exportieren, so dass ich sie einzeln anzeigen kann.
Ich glaube, die 'ols.summary()' ist eigentlich Ausgabe als Text, nicht als ein 'Datenrahmen'. Ich habe normalerweise zum Drucken auf eine oder mehrere Textdateien für die Speicherung zurückgegriffen. – Stefan
wenn ich versuche, etwas wie: 'für i im Ergebnis: i.to_csv (os.path.join (outpath, i + '. Csv')' es gibt 'AttributeError: 'OLS' Objekt hat kein Attribut 'to_csv'' –
Welche "OLS" Routine verwendest du? 'Statsmodels'? – Stefan