如何使用python比较不同列中的同一行?
例如: 我有A列和B列,我需要进行质量检查,以确保每次A列为“现金”时B列都为空。我不想让它输出每一行,我只想知道(真/假)当A列为“现金”时,B列是否为空 我的当前(不工作)代码: 如果每次A列为“现金”时B列都为空如何使用python比较不同列中的同一行?,python,pandas,numpy,dataframe,multiple-columns,Python,Pandas,Numpy,Dataframe,Multiple Columns,例如: 我有A列和B列,我需要进行质量检查,以确保每次A列为“现金”时B列都为空。我不想让它输出每一行,我只想知道(真/假)当A列为“现金”时,B列是否为空 我的当前(不工作)代码: 如果每次A列为“现金”时B列都为空 如果A是“现金”,而“B”是空的,则aCash&B将给出真值,如果A的真值数与aCash本身的真值数相同,则表示A是Cash,B是NULL的所有行 测试条件的平等性 d1.A.eq('Cash').eq(d1.B.isnull()).all() 演示 d1 = pd.Data
- 如果A是“现金”,而“B”是空的,则aCash&B将给出真值,如果A的真值数与
本身的真值数相同,则表示aCash
是A
,Cash
是B
的所有行李>NULL
d1.A.eq('Cash').eq(d1.B.isnull()).all()
演示
d1 = pd.DataFrame(dict(
A=['a', 'b', 'Cash', 'c', 'Cash', 'd'],
B=[1, 1, None, 1, None, 1],
C=[1, None, 1, 1, 1, 1]
))
print(d1)
A B C
0 a 1.0 1.0
1 b 1.0 NaN
2 Cash NaN 1.0
3 c 1.0 1.0
4 Cash NaN 1.0
5 d 1.0 1.0
如果在上面的例子中,B在其他地方有一些NaN,这将不是真的,但它仍然满足逻辑,对吗?正确。我的解释是这就是OP想要的。如果不是,那么当
A
不是现金时,您的方法会考虑B
可能有None
d1.A.eq('Cash').eq(d1.B.isnull()).all()
d1 = pd.DataFrame(dict(
A=['a', 'b', 'Cash', 'c', 'Cash', 'd'],
B=[1, 1, None, 1, None, 1],
C=[1, None, 1, 1, 1, 1]
))
print(d1)
A B C
0 a 1.0 1.0
1 b 1.0 NaN
2 Cash NaN 1.0
3 c 1.0 1.0
4 Cash NaN 1.0
5 d 1.0 1.0
d1.A.eq('Cash').eq(d1.B.isnull()).all()
True
d1.A.eq('Cash').eq(d1.C.isnull()).all()
False