我有以下数据框(带有不同的广告系列)
当我使用groupby并尝试绘制时,我得到了几张图
df.groupby("Campaign").plot(y=["Visits"], x = "Week")
我只希望有一个图表,每个活动在一周时间内的所有访问都在同一图表中。另外,由于这些图形分开显示,因此我不知道每个广告系列属于哪个图形。
任何有关此的提示,我都将感谢。
答案 0 :(得分:4)
您可以这样做:
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')
输出:
答案 1 :(得分:2)
另一种可能的解决方案是使用seaborn
import seaborn as sns
ax = sns.lineplot(x="Week",
y="Visits",
hue="Campaign",
estimator=None,
lw=1,
data=df)
文档为here