Dom*_*mec 2 python numpy matplotlib bigdata pandas
我有一个这样的数据框:
| 国家 | 问题1 | 问题2 |
|---|---|---|
| 法国 | 是的 | 不 |
| 意大利 | 是的 | 是的 |
| 法国 | 是的 | 不 |
| 德国 | 不 | 是的 |
| 意大利 | 不 | 是的 |
我想得到一个输出,如数据透视表或一个组,每个问题和每个国家/地区的计数为是/否(excel 的类似计数)。
我尝试了很多方法作为df.groupby(country).value_counts()或df.groupby(country).sum("Yes")
但我无法得到想要的结果。
我想制作一个图表,显示这个结果,只针对 YES 的答案。
有人可以给我一个建议吗?
谢谢
我们可以编码在列中的值question1和question2使用get_dummies,然后sum每唯一编码值country获得的数的计数Yes和No每每个问题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)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |