我有一个熊猫数据框,其中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
答案 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