Aşağıdaki kod ile bir groupby
kullanılarak pandas.stats.api.ols
kullanarak OLS regresyon çalıştırıyorum:Baskı EKK regresyon özeti
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
ama bu hatayı döndürür:
AttributeError: 'OLS' object has no attribute 'index'
Ben yaklaşık 2,000 ürün yok Grubumda ve her birini yazdırdığımda şu gibi bir şey görüyorlar:
-
------------------------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---------------------------------
Her birini ayrı ayrı görüntüleyebilmem için her birini bir csv'ye vermek istiyorum. pandas.stats.api.ols
ait result
, örneğin, çıktı biçimini eşleştirmek için bir metin dosyası kullanmak yazmak için
Ben 'ols.summary inanıyorum()' aslında metin olarak çıktı, değil bir DataFrame olarak. Genelde depolama için bir veya daha fazla metin dosyasına yazdırmaya başvurdum. – Stefan
Şunun gibi bir şey denediğimde: 'i sonuç olarak: i.to_csv (os.path.join (outpath, i + '. Csv')' döndürür AttributeError: 'OLS' nesnesinin 'to_csv' özelliği yoktur –
Hangi 'OLS 'rutin kullanıyorsunuz?' Statsmodels'? – Stefan