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)

python [Pandas] .groupby包括NaN值

python pandas中的Groupby:快速方式

Python/Pandas - 结合 groupby 平均值和最小值