Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:根据另一列向后填充缺少的值_Python_Pandas - Fatal编程技术网

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