如何分组并绘制它

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数据。它使用群集分析根据需要按位置对活动进行分组,并输出图表

R语言使用ggplot2包的快速可视化函数qplot绘制分组点图(带状图)并配置分组颜色实战

带有分组数据过滤器的 Google 仪表板 - 如何绘制分组数据图表