Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何一次比较四列数据帧?_Python_Pandas_Indexing_Dataframe_Conditional Statements - Fatal编程技术网

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

请显示您的错误,但您应该使用
&
(带括号)而不是
。谢谢。我不知道用&进行布尔索引。如果我的答案或其他答案有用,请不要忘记。谢谢