Python 如何一次比较四列数据帧?
我有一个数据帧 数据帧:Python 如何一次比较四列数据帧?,python,pandas,indexing,dataframe,conditional-statements,Python,Pandas,Indexing,Dataframe,Conditional Statements,我有一个数据帧 数据帧: Symbol1 BB Symbol2 CC 0 ABC 1 ABC 1 1 PQR 1 PQR 1 2 CPC 2 CPC 0 3 CPC 2 CPC 1 4 CPC 2 CPC 2 ValueError: The truth value of a Series is ambig
Symbol1 BB Symbol2 CC
0 ABC 1 ABC 1
1 PQR 1 PQR 1
2 CPC 2 CPC 0
3 CPC 2 CPC 1
4 CPC 2 CPC 2
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我想将Symbol1
与Symbol2
和BB
与CC
进行比较,如果它们相同,那么我希望只有其他行必须从数据帧中删除
预期结果:
Symbol1 BB Symbol2 CC
0 ABC 1 ABC 1
1 PQR 1 PQR 1
2 CPC 2 CPC 2
如果在两行之间进行比较,则我使用:
df = df[df['BB'] == '2'].copy()
它会很好用的
df = df[df['BB'] == df['offset'] and df['Symbol1'] == df['Symbol2']].copy()
这给了我错误
错误:
Symbol1 BB Symbol2 CC
0 ABC 1 ABC 1
1 PQR 1 PQR 1
2 CPC 2 CPC 0
3 CPC 2 CPC 1
4 CPC 2 CPC 2
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如何比较并获得预期结果?您可以使用和进行比较:
这里有另一种方法,它稍微好一点,但也稍微慢一点:
In [65]: df.query('Symbol1 == Symbol2 and BB == CC')
Out[65]:
Symbol1 BB Symbol2 CC
0 ABC 1 ABC 1
1 PQR 1 PQR 1
4 CPC 2 CPC 2
请显示您的错误,但您应该使用&
(带括号)而不是和
。谢谢。我不知道用&进行布尔索引。如果我的答案或其他答案有用,请不要忘记。谢谢