从多列条件填充熊猫列中的na

时间:2020-10-12 09:12:00

标签: python pandas

我想在熊猫数据框中填写na,其中数据框中的两列都在同一行。

A B C
2 3 5
Nan nan 7
4 7 9
Nan 4 9
12 5 8
Nan Nan 6

在上面的数据框中,我只想用“ Not Available”替换其中A和B列都具有Nan的行

因此:

A B C
2 3 5
Not available not available 7
4 7 9
Nan 4 9
12 5 8
Not available not available 6

我尝试了多种方法,但结果不理想

1 个答案:

答案 0 :(得分:1)

如果只想测试AB列,请使用DataFrame.loc进行遮罩测试,如果缺少,则用DataFrame.all进行测试:

m = df[['A','B']].isna().all(axis=1)

df.loc[m, ['A','B']] = 'Not Available'

如果需要测试任何2列,则首先计算缺失值的数量,并且2使用fillna

m = df.isna().sum(axis=1).eq(1)

df = df.where(m, df.fillna('Not Available'))
print (df)
               A              B  C
0              2              3  5
1  Not Available  Not Available  7
2              4              7  9
3            NaN              4  9
4             12              5  8
5  Not Available  Not Available  6