我有一个关于如何组织数据以使用 seaborn 制作条形图的问题。
我的数据输入如下所示
influencer platform reach
person a instagram 10000
person b instagram 5000
person a instagram 8000
person a youtube 13000
我需要的是一个条形图,显示每个影响者每个类别的覆盖范围总和。
基本上我已经非常接近seaborn,但它显示了到达列的平均值,而不是总数
sns.barplot(x='influencer', y='reach', data=df, hue='platform')
我尝试用交叉表安排我的输入
pd.crosstab(df['influencer'], df['platform'])
但我得到的是条目的总和。
感觉我已经很接近了,但我无法完全完成。
请你帮助我好吗?
不要更改数据,而是使用estimator
参数改变方式sns.barplot https://seaborn.pydata.org/generated/seaborn.barplot.html聚合类别:
estimator
:用于估计每个分类箱内的统计函数。
sns.barplot(data=df, x='influencer', y='reach', hue='platform',
estimator=sum, ci=None)
或者,如果您仍然想手动计算总和,请使用groupby.sum https://pandas.pydata.org/docs/reference/api/pandas.core.groupby.GroupBy.sum.html:
sns.barplot(data=df.groupby(['influencer', 'platform'], as_index=False)['reach'].sum(),
x='influencer', y='reach', hue='platform')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)