我想在熊猫数据框中填写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
我尝试了多种方法,但结果不理想
答案 0 :(得分:1)
如果只想测试A
和B
列,请使用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