使用.shift()使用条件语句填充空值

时间:2019-04-19 09:50:13

标签: pandas dataframe

我想基于其他列中的值来填充列的空值。

A   B
1   21
0   21
0   21
1   25
1   28
0   28

只有当A值为1时,我的B值才会增加。

所以我在A列中有一些空值,例如

A     B
1     21
0     21
NAN   21
1     25
1     28
0     28

我想用0填充此空值,因为B的对应值没有增加。

df['A'] = np.where((df['A'].isnull()) & (df['B'] ==df['B'].shift()),0,df['A'])

这没有给出正确的结果。我要去哪里错了

1 个答案:

答案 0 :(得分:0)

loc在这里可能会更好。

df.loc[(df['A'] == np.nan) & (df['B'] == df['B'].shift(-1)),'A'] = 0

# I havent checked if the shift needs to be -1 or 1