python - 处理 pandas python 中的缺失数据

标签 python pandas statsmodels

我有一个时间序列数据框,其中 x 和 y 作为列名称。在我的数据框中,y 是不完整的系列,x 是完整的系列。我尝试拟合 x 和 y 之间的线性回归模型。我的目的是通过使用这个模型来填补数据空白。我的示例代码是:

import statsmodels.formula.api as sm
result = sm.ols(formula="y ~ x", data=df_rg).fit()
df_rg['y'][df_rg['y'].fillna(predict(df_rg['x'])

其中 df_rg 是我的数据框,以日期时间作为索引。

我的数据框看起来像:

date         x          y
1957-07-31  18.845161   NaN
1957-08-31  18.080645   NaN
1957-09-30  16.156667   NaN
1957-10-31  12.324194   NaN
1957-11-30  8.948333    NaN
1957-12-31  6.253226    NaN
.............................
.............................
2015-03-31  8.316129    20.088710
2015-04-30  10.408333   22.203333
2015-05-31  14.832258   25.258065
2015-06-30  16.815000   26.453333
2015-07-31  18.141935   26.835484
2015-08-31  18.450000   26.637097
2015-09-30  17.016667   26.513333
2015-10-31  11.898387   22.906452
2015-11-30  9.133333    19.376667
2015-12-31  5.366129    14.441935

最佳答案

也许可以使用没有 NA 值的数据框进行拟合,使用 pandas.DataFrame.dropna

import statsmodels.formula.api as sm
result = sm.ols(formula="y ~ x", data=df_rg.dropna()).fit()
df_rg['y'] = df_rg['y'].fillna(predict(df_rg['x']))

关于python - 处理 pandas python 中的缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48625430/

相关文章:

python - 查找列表中最大数字的函数

python - 将 statsmodels 摘要对象转换为 Pandas Dataframe

python - 如何解决属性错误 "Int64Index'对象没有属性 'inferred_freq'》

python - Matplotlib:用不同颜色绘制大量断开的线段

python - 只有第一行输出被打印到我的文本文件

python - 使用 drop() 从 panda 数据框中删除星期六行的正确方法

python - 汇总 Pandas DataFrame 中的行

python - Python 中的模型输出 `to_excel`?

python - 使用数组对象计算 Spark RDD 中的不同文本

python - 将文本文件解析为 pandas 数据框