如何在python中分组和计算二项式变量?并绘制此图

Dom*_*mec 2 python numpy matplotlib bigdata pandas

我有一个这样的数据框:

国家 问题1 问题2
法国 是的
意大利 是的 是的
法国 是的
德国 是的
意大利 是的

我想得到一个输出,如数据透视表或一个组,每个问题和每个国家/地区的计数为是/否(excel 的类似计数)。

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

但我无法得到想要的结果。

我想制作一个图表,显示这个结果,只针对 YES 的答案。

有人可以给我一个建议吗?

谢谢

Shu*_*rma 7

如何分组和计算二项式变量?

我们可以编码在列中的值question1question2使用get_dummies,然后sum每唯一编码值country获得的数的计数YesNo每每个问题country

counts = pd.get_dummies(df.set_index('country')).sum(level=0)
Run Code Online (Sandbox Code Playgroud)
         question1_no  question1_yes  question2_no  question2_yes
country                                                          
france              0              2             2              0
italy               1              1             0              2
germany             1              0             0              1
Run Code Online (Sandbox Code Playgroud)

如何制作这个情节?

过滤包含_Yes名称后缀的问题列,然后调用plotpandas dataframe的方法 withkind=bar创建一个条形图,显示Yes每个国家对应的问题数

counts.filter(like='_yes').plot(kind='bar') 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明