繁体   English   中英

将 na 填充到来自多列条件的 Pandas 列中

[英]Filling na in a column in pandas from multiple columns conition

我很想在 Pandas 数据框中填充 na ,其中数据框中的两列都在同一行上。

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

在上面的数据框中,我想用“不可用”替换 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

我尝试了多种方法,但结果却不尽如人意

如果只想测试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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM