python 如何在Pandas中根据列值选择行

mnemlml8  于 2022-10-30  发布在  Python
关注(0)|答案(3)|浏览(130)

我创建了一个这样的数据集,

Gender    response
female    yes
male      yes
female    yes
female    no
male      yes
female    no
male      yes
male      no
female    no

我喜欢按性别统计回答“是”和“否”的人数。比如有两个女性说“否”,两个女性说“是”。有三个男性说“是”,一个说“否”。
我试图用Pandas Dataframe 来实现这个。
到目前为止,我已经尝试将查询写为

df.loc[df['Gender'] == 'female' & (df['response'] == 'yes')]

但是我弄错了,我怎么写呢?

  • 谢谢-谢谢
js5cn81o

js5cn81o1#

您可以将value_countsgroupby方法一起使用,如下所示:

df.groupby('Gender')['response'].value_counts()

回应:

Gender  response
female  no          3
        yes         2
male    yes         3
        no          1
6rvt4ljy

6rvt4ljy2#

请交叉制表

pd.crosstab(df['Gender'], df['response']).reset_index()
3duebb1j

3duebb1j3#

您也可以像这样对每个类别进行分组和计数:

counts = df.groupby(['Gender','response']).size()

print(counts['female']['yes']) # Show the number of females who responded yes

相关问题