假设我有一个像下面这样的 df:
A B C
null 0 null
null 4 null
5 6 null
0 0 0
现在,我想根据 A 列和 B 列的条件填写我的 C 列: 仅当 A 列中 B 列的“0”为空时,才让 C 列为空,否则在所有其他情况下将 B 列复制到 C 列。这意味着我希望我的 df 看起来像这样:
A B C
null 0 null
null 4 4
5 6 6
0 0 0
我怎样才能在 Pandas 中实现这一点? 任何帮助将不胜感激,因为我是 python 和 pandas 编程的新手。
请您参考如下方法:
使用numpy.where条件由 & 链接,用于按位与:
import numpy as np
m1 = df.A.isna()
m2 = df.B.eq(0)
df['C'] = np.where(m1 & m2, np.nan, df.B)
print (df)
A B C
0 NaN 0 NaN
1 NaN 4 4.0
2 5.0 6 6.0
3 0.0 0 0.0
