【问题标题】:Simple linear regression of two dataframe python两个数据框python的简单线性回归
【发布时间】:2020-06-20 13:24:14
【问题描述】:

我有两个带有日期时间索引的数据框。第一个数据帧可能包含 nan 值,而第二个不包含。

data1['A']
2019-06-01 00:00:00          NaN
2019-06-01 01:00:00          NaN
2019-06-01 02:00:00          NaN
2019-06-01 03:00:00          NaN
2019-06-01 04:00:00          NaN
                         ...    
2019-06-30 19:00:00    14.086600
2019-06-30 20:00:00    14.101033
2019-06-30 21:00:00    14.160733
2019-06-30 22:00:00    13.940633
2019-06-30 23:00:00    13.989567
Freq: H, Name: A, Length: 720, dtype: float64
data2['B']
2019-06-01 00:00:00    243.168989
2019-06-01 01:00:00    243.104673
2019-06-01 02:00:00    242.571222
2019-06-01 03:00:00    240.685214
2019-06-01 04:00:00    242.652392
                          ...    
2019-06-30 19:00:00    243.611821
2019-06-30 20:00:00    243.338931
2019-06-30 21:00:00    243.296361
2019-06-30 22:00:00    243.676107
2019-06-30 23:00:00    243.507886
Name: B, Length: 720, dtype: float64

当这两个数据框在某个日期时间(没有 nan)都具有值时,我如何才能对这两个数据框进行简单的线性回归模型。感谢您的帮助!

【问题讨论】:

  • 任何教程都可以帮助您,您可以先尝试scikit-learn.org/stable/modules/generated/…
  • 我试过了,它说预期二维数组,得到一维数组,还有其他建议吗?谢谢你!
  • 谷歌那个错误,关于那个确切的问题有很多问题。

标签: python pandas dataframe datetime regression


【解决方案1】:

【讨论】:

  • 我试过了。但我有一个错误。它说“预期二维数组,得到一维数组而不是blabla”,还有其他建议吗?无论如何,谢谢!
【解决方案2】:

您必须先将数据帧合并为一个数据帧https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html,然后在合并的数据帧上尝试来自 scikit-learn 的 LinearRegression。

【讨论】:

    【解决方案3】:

    你可以尝试这样的事情,你没有指定要回归什么,所以在下面的例子中,我让 x 是 'A' 而 y 是 'B':

    from sklearn import linear_model
    import pandas as pd
    import numpy as np
    
    data1 = pd.DataFrame({'A':[np.NaN,np.NaN,np.NaN,np.NaN,14.086600,14.101033,14.160733,13.940633,13.989567]})
    data2 = pd.DataFrame ({ 'B':[243.168989,243.104673,242.571222,240.685214,242.652392,
                                 243.611821,243.338931,243.296361,243.676107,243.507886]})
    is_finite = np.isfinite(data1['A']) & np.isfinite(data2['B'])
    mdl = linear_model.LinearRegression()
    mdl.fit(data1.loc[is_finite][['A']],data2.loc[is_finite]['B'])
    mdl.coef_
    

    【讨论】:

    • 非常感谢。它对我有很大帮助。所以 x 和 y 都不应该有 nan 值,这就是为什么我们需要先制作类似 "is_finite" 的东西,对吧?
    • y 不应该有 na。但是你无法用他们预测任何事情。因为你只有 hv 1 dep Vs 1 indep
    猜你喜欢
    • 2013-03-15
    • 2016-04-14
    • 2018-07-23
    • 2014-05-04
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2021-08-02
    • 2014-11-25
    相关资源
    最近更新 更多