如何分组并绘制它
Posted
技术标签:
【中文标题】如何分组并绘制它【英文标题】:How to Groupby and plot it 【发布时间】:2019-01-29 23:06:33 【问题描述】:我有以下数据框(包含不同的广告系列)
当我使用 groupby 并尝试绘图时,我得到了几张图表
df.groupby("Campaign").plot(y=["Visits"], x = "Week")
我希望只有一个图表,其中每个广告系列在一周内的所有访问都在同一个图表中。此外,由于图表是分开显示的,我不知道哪个属于每个广告系列。
我将不胜感激有关此的任何提示。
【问题讨论】:
【参考方案1】:你可以这样做:
df.set_index(['Week','Campaign'])['Visits'].unstack().plot(title='Visits by Campaign')
对于 Week/Campaign 的多个值,让我们将它们与 sum
聚合,或者您可以使用 mean
来平均这些值:
df.groupby(['Week','Campaign'])['Visits'].sum().unstack().plot(title='Visits by Campain')
输出:
【讨论】:
不幸的是,ValueError:索引包含重复的条目,无法重塑 @May 你有重复的周数,campaings 值。您想将这些访问加在一起或平均它们做什么? 所有广告系列从 1 到 30 的周数相同。我想看看每个广告系列的访问量在一周时间线上的发展情况【参考方案2】:另一种可能的解决方案是使用 seaborn
import seaborn as sns
ax = sns.lineplot(x="Week",
y="Visits",
hue="Campaign",
estimator=None,
lw=1,
data=df)
文档是here
【讨论】:
我也需要开始在我的解决方案中给予 seaborn 一些爱。 +1 你是我的第一个想法,但特别是对于 '0.9.0',seaborn 提供了很多漂亮的快捷方式以上是关于如何分组并绘制它的主要内容,如果未能解决你的问题,请参考以下文章
如何按范围对csv文件中的列进行分组并使用python绘制直方图?
r 这个R脚本将绘制所有你的runkeeper数据。它使用群集分析根据需要按位置对活动进行分组,并输出图表