大Pandas的退化

2024-04-24 20:00:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个独立的数据库-一个是每小时的温度数据库,另一个是用于暖通空调使用的逐分钟数据的房屋数据库。我试图把暖通空调的数据绘制成一周、一个月和一年的温度序列,但是由于增量与温度db不匹配,我遇到了麻烦。我试过用最小二乘法拟合,但a)不知道怎么在熊猫身上做一个,b)一两天后就变得不准确了。有什么建议吗?在


Tags: 数据数据库db绘制序列温度增量建议
1条回答
网友
1楼 · 发布于 2024-04-24 20:00:57

pandastimeseries非常适合此应用程序。您可以合并不同采样频率的序列,pandas将它们完美地对齐。然后,您可以减少数据采样并进行回归,即使用statsmodels。模型示例:

In [288]:

idx1=pd.date_range('2001/01/01', periods=10, freq='D')
idx2=pd.date_range('2001/01/01', periods=500, freq='H')
df1 =pd.DataFrame(np.random.random(10), columns=['val1'])
df2 =pd.DataFrame(np.random.random(500), columns=['val2'])
df1.index=idx1
df2.index=idx2
In [291]:

df3=pd.merge(df1, df2, left_index=True, right_index=True, how='inner')
df4=df3.resample(rule='D')
In [292]:

print df4
                val1      val2
2001-01-01  0.399901  0.244800
2001-01-02  0.014448  0.423780
2001-01-03  0.811747  0.070047
2001-01-04  0.595556  0.679096
2001-01-05  0.218412  0.116764
2001-01-06  0.961310  0.040317
2001-01-07  0.058964  0.606843
2001-01-08  0.075129  0.407842
2001-01-09  0.833003  0.751287
2001-01-10  0.070072  0.559986

[10 rows x 2 columns]
In [294]:

import statsmodels.formula.api as smf
mod = smf.ols(formula='val1 ~ val2', data=df4)
res = mod.fit()
print res.summary()
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                   val1   R-squared:                       0.061
Model:                            OLS   Adj. R-squared:                 -0.056
Method:                 Least Squares   F-statistic:                    0.5231
Date:                Fri, 27 Jun 2014   Prob (F-statistic):              0.490
Time:                        10:46:34   Log-Likelihood:                -3.3643
No. Observations:                  10   AIC:                             10.73
Df Residuals:                       8   BIC:                             11.33
Df Model:                           1                                         
==============================================================================
                 coef    std err          t      P>|t|      [95.0% Conf. Int.]
                                       
Intercept      0.5405      0.224      2.417      0.042         0.025     1.056
val2          -0.3502      0.484     -0.723      0.490        -1.467     0.766
==============================================================================
Omnibus:                        3.509   Durbin-Watson:                   2.927
Prob(Omnibus):                  0.173   Jarque-Bera (JB):                1.232
Skew:                           0.399   Prob(JB):                        0.540
Kurtosis:                       1.477   Cond. No.                         4.69
==============================================================================

相关问题 更多 >