python pandas groupby plot,排序日期为 xtick
Posted
技术标签:
【中文标题】python pandas groupby plot,排序日期为 xtick【英文标题】:python pandas groupby plot with sorted date as xtick 【发布时间】:2016-07-12 10:52:20 【问题描述】:我有一个具有以下格式的熊猫数据框 df
date value team
12/8/2015 1.2 'A'
12/8/2015 1.3 'A'
12/7/2015 1.2 'A'
12/6/2015 1.3 'B'
12/6/2015 1.1 'B'
12/7/2015 1.3 'B'
...............................
我想要的是一个有两条曲线代表两组的图形,日期为 x 值,对应日期的平均值为 y 值。困扰我的是日期格式似乎不正确,因为 python 抱怨
“无法将 12/8/2015... 转换为数字”
for label, group in df.groupby('team']):
group.plot(x=group['date'], y=group['date'].mean(),label=label)
【问题讨论】:
【参考方案1】:您首先需要将日期转换为时间戳。
df['date'] = pd.to_datetime(df.date)
然后你可以分组和取消堆叠以获得你想要的数据:
>>> df.groupby(['date', 'team']).sum().unstack('team')
value
team 'A' 'B'
date
2015-12-06 NaN 2.4
2015-12-07 1.2 1.3
2015-12-08 2.5 NaN
添加.plot()
,你应该会得到你想要的结果。
【讨论】:
一个后续问题,在我使用绘图功能后,如何使图例只显示“团队”而不是“日期”和“团队” 没关系,答案在这里***.com/questions/13886019/… 我打算建议df2 = df.groupby(['date', 'team']).sum().unstack('team')
,df2.columns = df2.columns.droplevel()
以上是关于python pandas groupby plot,排序日期为 xtick的主要内容,如果未能解决你的问题,请参考以下文章
python [groupby]示例groupby #pandas #secret
[Python Cookbook] Pandas Groupby
如果在 groupby 中出现条件,则 Python (Pandas)