熊猫数据框-根据条件删除缺失值行或将缺失值替换为0

时间:2018-09-18 16:23:50

标签: pandas

我有一个熊猫数据框,其中A列中缺少一些值。我注意到当B列的值为0时,A列的值丢失了,如下所示:

B   A
-----
10  100
0   NULL
20  500
0   NULL

我想根据以下逻辑在python中编写代码:

IF df[A] isnull then 
 if df[B]==0  then
    replace df[A] with 0
 else
    drop df[A] row
END IF

2 个答案:

答案 0 :(得分:0)

我做了一个特殊情况,例如B不等于0且A为c/bar

样本数据

NaN

df
Out[563]: 
    B      A
0  10  100.0
1   0    NaN
2  20  500.0
3   0    NaN
4   1    NaN

答案 1 :(得分:0)

另一种方法是使用pandas.DataFrame.drop

# Code to create input dataframe
df = pd.DataFrame({'B': [10, 0, 20, 0, 1], 'A': [100, np.nan, 500, np.nan, np.nan]})

# Input dataframe
    B      A
0  10  100.0
1   0    NaN
2  20  500.0
3   0    NaN
4   1    NaN

# Code to solve your problem
df.drop(index=df[df['A'].isnull() & df['B'] != 0].index, inplace=True)
df['A'] = df['A'].fillna(0)

# Output dataframe
    B      A
0  10  100.0
1   0    0.0
2  20  500.0
3   0    0.0