按条件移动列值

时间:2019-08-23 14:27:14

标签: python python-3.x pandas

我有一张桌子:

id | value
-----------
1  | 1
2  | 0
3  | 0
4  | 3

假设我们在第一行。我要向前看,直到遇到非零值并将其移回。如果值为零,则next_value也将为零。

id | value | next_value
-----------------------
1  | 1     | 3
2  | 0     | 0
3  | 0     | 0
4  | 3     | Nan

我尝试在熊猫中使用移位功能,但是您只能预定义移位长度。

1 个答案:

答案 0 :(得分:3)

value0不同的数据帧建立索引,并分配列的移位版本:

m = df.value.ne(0)
df.loc[m, 'value'] = df.loc[m, 'value'].shift(-1)

    id  value
0   1    3.0
1   2    0.0
2   3    0.0
3   4    NaN
相关问题