gpt4 book ai didi

python - 绘制调查中的分组信息

转载 作者:行者123 更新时间:2023-11-30 21:58:19 25 4
gpt4 key购买 nike

我有一个数据框,其中包含感兴趣的变量(分类变量,此处为等)和分组变量(见下文):

import pandas as pd
import numpy as np
df = pd.DataFrame({
'ID': range(100),
'group': np.random.choice(['A', 'B', 'C'], 100),
'Response':np.random.choice(['Yes','No','Other', np.nan], 100)})

由此,我想检索并在条形图中绘制每组的累积数据。

详细:对于A组,YesNo等的百分比,group by同理。命令 df['Response'].groupby(df['group']).value_counts() 已经给出了以下输出:

group  Response
A Other 14
No 8
Yes 8
nan 8
B Other 11
nan 11
No 5
Yes 4
C No 9
Yes 9
nan 7
Other 6
Name: Response, dtype: int64

这就是我想要的,但我找不到正确绘制它的方法(在 matplotlib 或 seaborn 中),并且不确定这是否是数据转换或可视化的问题。

This问题是询问类似的问题,但我无法让它与 unstack 一起使用:

df = df['group'].unstack(0, fill_value = 0)

给出

AttributeError: 'RangeIndex' object has no attribute 'remove_unused_levels'

df = df['group'].unstack(0, fill_value = 0)
df.index.name = None
df.columns.name = None
df.plot.bar(stacked=True)

仅绘制ID(未分组)。

最佳答案

您应该在不选择的情况下进行unstackgroupby输出是Series,并且注意您是使用Series groupby而不是pd.DataFrame.groupby

df['Response'].groupby(df['group']).value_counts().unstack(fill_value=0)
<小时/>
type(df['Response'].groupby(df['group']).value_counts())
Out[207]: pandas.core.series.Series

关于python - 绘制调查中的分组信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com