Python 熊猫:根据另一列向后填充缺少的值
假设我有一个数据帧,如下所示:Python 熊猫:根据另一列向后填充缺少的值,python,pandas,Python,Pandas,假设我有一个数据帧,如下所示: location col2 0 LA NaN 1 LA 3 2 LA 5 3 LA NaN 4 SF NaN 5 SF NaN 6 SF 7 7 SF 6 只有当上面一行中的位置等于“col2”中的位置时,我才尝试向后填充“col2”中缺少的值 例如,仅在以下情况下向后填充 df['location'] == df['loc
location col2
0 LA NaN
1 LA 3
2 LA 5
3 LA NaN
4 SF NaN
5 SF NaN
6 SF 7
7 SF 6
只有当上面一行中的位置等于“col2”中的位置时,我才尝试向后填充“col2”中缺少的值
例如,仅在以下情况下向后填充
df['location'] == df['location'].shift(-1)
这是真的。因此,最终的数据帧如下所示:
location col2
0 LA 3
1 LA 3
2 LA 5
3 LA NaN
4 SF 7
5 SF 7
6 SF 7
7 SF 6
我该怎么做?您可以使用groupby()
+bfill()
:
将值设置回col2
:
In [186]: df.col2 = df.groupby('location').col2.bfill()
In [187]: df
Out[187]:
location col2
0 LA 3.0
1 LA 3.0
2 LA 5.0
3 LA NaN
4 SF 7.0
5 SF 7.0
6 SF 7.0
7 SF 6.0
^^^^^这个^^^^^
In [186]: df.col2 = df.groupby('location').col2.bfill()
In [187]: df
Out[187]:
location col2
0 LA 3.0
1 LA 3.0
2 LA 5.0
3 LA NaN
4 SF 7.0
5 SF 7.0
6 SF 7.0
7 SF 6.0