Python 熊猫过滤

Python 熊猫过滤,python,pandas,dataframe,Python,Pandas,Dataframe,我在玩下面的游戏(这基本上是一个代表美国枪杀死亡人数的数据集),我试图证明“大约三分之二的15-34岁男性凶杀案受害者是黑人” 以下是我的尝试: data = pd.read_csv("./guns-data-master/full_data.csv") homicides = data[data['intent'] == 'Homicide'] male_homicides = homicides[homicides['sex'] == 'M'] less_thirty_f

我在玩下面的游戏(这基本上是一个代表美国枪杀死亡人数的数据集),我试图证明“大约三分之二的15-34岁男性凶杀案受害者是黑人”

以下是我的尝试:

data = pd.read_csv("./guns-data-master/full_data.csv")
homicides = data[data['intent'] == 'Homicide']
male_homicides = homicides[homicides['sex'] == 'M']
less_thirty_four = male_homicides[male_homicides['age'] <= 34.0]
within_range = less_thirty_four[less_thirty_four['age'] >= 15.0]
within_range.race.value_counts()
data=pd.read\u csv(“./guns data master/full\u data.csv”)
凶杀案=数据[数据['intent']=“凶杀案”]
男性凶杀案=凶杀案[凶杀案['sex']='M']
少于三十岁=男性凶杀案[男性凶杀案[年龄]=15.0]
在\u范围内。种族。值\u计数()
这基本上给了我足够的信息来证明我想要什么。不过,我相信必须有一个更简单、更有效的方法,过滤掉所有15至34岁的男性凶杀案受害者

如何使此筛选过程更高效?

试试以下方法:

data = pd.read_csv("./guns-data-master/full_data.csv")
homicides = data[(data['intent'] == 'Homicide')  & (data['sex'] == 'M') & (data['age'] <= 34.0) & (data['age'] >= 15.0) ]
homicides.race.value_counts()
data=pd.read\u csv(“./guns data master/full\u data.csv”)
凶杀案=数据[(数据['intent']=“凶杀案])&(数据['sex']=“M')&(数据['age']=15.0)]
杀人、种族、价值和计数()

除了@hypnos提到的方法外,另一种方法(可能可读性更好)是使用该方法

url=”https://raw.githubusercontent.com/fivethirtyeight/guns-data/master/full_data.csv"
df=pd.read\u csv(url、索引\u col=[0])
df.query(“年龄>=25,年龄只需使用'&'(and)运算符,并将所有查询放在一行中,如下所示:data[(data['intent']=='hemission')&(data['sex']='M')&(data['age']=15.0)]。值