我正在尝试根据两行值过滤掉行。我看到的大多数问题的解决方案都使用以下方法:
df.loc[(df['A'] != 'yes') & (df['B'] != 'no')]
这将过滤A和B不同于一个值的行,我要做的是过滤那些具有我要过滤的值的行,例如:
Player | action | result
1 A B
2 B A
3 C A
4 A B
5 A C
在此示例中,我想删除具有操作A
和结果B
的行。使用上面的示例,它将删除等于A
的动作和结果等于B
的行。我想删除结果为A
的动作B
。
预期输出:
Player | action | result
2 B A
3 C A
5 A C
在这里,我可能会引起很多困惑,这很简单。无论如何,任何帮助将不胜感激!
致谢
答案 0 :(得分:4)
请您尝试以下。
import pandas as pd
df2[~((df2["action"]=='A') & (df2["result"]=='B'))]
数据帧的输出如下。
Player action result
1 2 B A
2 3 C A
4 5 A C
答案 1 :(得分:2)
我想这就是你想要的
pd.concat([df[(df['action'] == 'A') & (df['result'] != 'B')],df[(df['action'] != 'A')]])