Python Pandas DataFrame 填充缺失值

Python Pandas DataFrame Fill Missing Value

我有一个像这样的带有一些 NaN 的数据框:

df:

      0      1
1  11.0  111.0
2  12.0  112.0
3  13.0  113.0
4   NaN  114.0
4  15.0    NaN
5  16.0  116.0
6  17.0  117.0
7  18.0  118.0

那么我应该怎么做才能得到以下内容:

      0      1
1  11.0  111.0
2  12.0  112.0
3  13.0  113.0
4  15.0  114.0
4  15.0  114.0
5  16.0  116.0
6  17.0  117.0
7  18.0  118.0

以便索引 4 中的 NaN 值填充其他行中非 NaN 的索引 4 值?

您可以按索引分组,每个组内 ffill() + bfill():

In [165]: df.groupby(level=0).apply(lambda x: x.ffill().bfill())
Out[165]:
      0      1
1  11.0  111.0
2  12.0  112.0
3  13.0  113.0
4  15.0  114.0
4  15.0  114.0
5  16.0  116.0
6  17.0  117.0
7  18.0  118.0