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
我有一个像这样的带有一些 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