Python 使用OR语句筛选数据帧

Python 使用OR语句筛选数据帧,python,pandas,filter,dataframe,Python,Pandas,Filter,Dataframe,我有一个熊猫数据框,我想根据数据框中两列的值过滤整个df。我想返回IBRD或IMF!=0. alldata_balance = alldata[(alldata[IBRD] !=0) or (alldata[IMF] !=0)] 但这给了我一个错误 ValueError:序列的真值不明确。使用a.empty, a、 bool()、a.item()、a.any()或a.all() 因此,我知道我没有正确使用or语句,有没有办法做到这一点?来自文档: 另一种常见的操作是使用布尔向量来过滤 数据

我有一个熊猫数据框,我想根据数据框中两列的值过滤整个df。我想返回IBRD或IMF!=0.

alldata_balance = alldata[(alldata[IBRD] !=0) or (alldata[IMF] !=0)]
但这给了我一个错误

ValueError:序列的真值不明确。使用a.empty, a、 bool()、a.item()、a.any()或a.all()

因此,我知道我没有正确使用or语句,有没有办法做到这一点?

来自文档:

另一种常见的操作是使用布尔向量来过滤 数据。运算符为:| for or、&for and和~ for not。这些 必须使用括号进行分组

尝试:


您可以执行以下操作以实现您的结果:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
....
....
#use filter with plot
#or
fg=sns.factorplot('Retailer country', data=df1[(df1['Retailer country']=='United States') | (df1['Retailer country']=='France')], kind='count')

fg.set_xlabels('Retailer country')
plt.show()


#also
#and
fg=sns.factorplot('Retailer country', data=df1[(df1['Retailer country']=='United States') & (df1['Year']=='2013')], kind='count')

fg.set_xlabels('Retailer country')
plt.show()

谢谢,效果很好。我应该读一下文件的那部分。这是对贴在下面的问题的回答吗?如果是这样的话,你为什么要同时解释
seaborn
?另外,请看一下如何
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
....
....
#use filter with plot
#or
fg=sns.factorplot('Retailer country', data=df1[(df1['Retailer country']=='United States') | (df1['Retailer country']=='France')], kind='count')

fg.set_xlabels('Retailer country')
plt.show()


#also
#and
fg=sns.factorplot('Retailer country', data=df1[(df1['Retailer country']=='United States') & (df1['Year']=='2013')], kind='count')

fg.set_xlabels('Retailer country')
plt.show()