如何在python中对二项式变量进行分组和计数?并绘制这个图

How to groupby and count binomial variable in python? and make a plot of this

我有一个这样的数据框:

country question1 question2
france yes no
italy yes yes
france yes no
germany no yes
italy no yes

我想得到一个像枢轴 table 或每个问题和每个国家的计数 yes/no 的组(类似 excel 的计数)的输出。

我尝试了很多方法 df.groupby(country).value_counts()df.groupby(country).sum("Yes")

但是我得不到想要的结果

我想把这个结果做成图表,只针对是的答案。

有人可以给我建议吗?

谢谢

如何对二项式变量进行分组和计数?

我们可以使用 get_dummies 编码 question1question2 中的值,然后 sum 每个编码值unique country 获取每个 country

每个问题的 YesNo 的计数
counts = pd.get_dummies(df.set_index('country')).sum(level=0)

         question1_no  question1_yes  question2_no  question2_yes
country                                                          
france              0              2             2              0
italy               1              1             0              2
germany             1              0             0              1

如何制作这个情节?

过滤名称后缀为_Yes的问题列,然后用kind=bar调用pandas数据框的plot方法创建一个显示计数的条形图每个国家

对应 Yes 个问题
counts.filter(like='_yes').plot(kind='bar')