Python fillna 与 Series 共享相同的索引

Python fillna with Series sharing same index

我的数据框列上有一些空值。我使用线性回归来预测缺失值,但现在我想用预测值替换 nan。 我想使用索引作为 fillna 的条件,因为我不想预测所有其他值。

这是我在数据框中的空值:df

    is      a       b       c       d       e       f
72  True    171.94  103.89  103.45  NaN     3.25    112.79
99  True    171.93  104.07  104.18  NaN     3.14    113.08
151 True    172.07  103.80  104.38  NaN     3.02    112.93
197 True    171.45  103.66  103.80  NaN     3.62    113.27
241 True    171.83  104.14  104.06  NaN     3.02    112.36

这里的系列return 用于填充索引的缺失值:prev

72      4.318525
99      4.393668
151     4.410457
197     4.319014
241     4.650617

我不知道填充缺失值的最佳方法是什么,我想确定是否填充了共享相同索引位置且带有循环的正确值?

您可以使用fillna(基于索引)

df = df.fillna({'d': prev})

# OR

df['d'] = df['d'].fillna(prev)

输出:

>>> df
       is       a       b       c         d     e       f
72   True  171.94  103.89  103.45  4.318525  3.25  112.79
99   True  171.93  104.07  104.18  4.393668  3.14  113.08
151  True  172.07  103.80  104.38  4.410457  3.02  112.93
197  True  171.45  103.66  103.80  4.319014  3.62  113.27
241  True  171.83  104.14  104.06  4.650617  3.02  112.36

如果索引相同(只需确保数据 df 中的数据与要合并到的数据框具有相同的列名,即 'd'):

df_merge = pd.merge(df, df_data, left_index = True, right_index = True, suffixes=('_x', '')).drop('d_x', axis = 1)
df_merge