首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Grouper的pandas系列datetime索引中的月份名称

使用Grouper的pandas系列datetime索引中的月份名称
EN

Stack Overflow用户
提问于 2019-07-12 02:05:49
回答 1查看 543关注 0票数 1

我正在将一年的数据(6-5月)逐月绘制成胡须盒子图。

我有熊猫系列的数据:

代码语言:javascript
运行
复制
Date
2018-06-01    0.012997
2018-06-02    0.009615
2018-06-03    0.012884
2018-06-04    0.013358
2018-06-05    0.013322
2018-06-06    0.011532
2018-06-07    0.018297
2018-06-08    0.018820
2018-06-09    0.031254
2018-06-10    0.016529
...
Name: Value, dtype: float64

我可以绘制它,但是我不能得到列,月份名称,所以它是用数字绘制的。但是,由于月份不是来自Jan = Dec,因此月份数字在这种情况下没有意义。

当我使用Grouper函数创建这样的df时,有没有办法获得月份名称?

我使用的代码最初来自https://machinelearningmastery.com/time-series-data-visualization-with-python/

如果我理解正确的话,Grouper将序列排列到一个包含每月数据的数组中,所以我猜这将是可能的时候(如果有的话):

代码语言:javascript
运行
复制
groups = series.groupby(pd.Grouper(freq = 'M'))
months = pd.concat([pd.DataFrame(x[1].values) for x in groups], axis=1)

我试图查找,但在使用pd.DataFrame函数时,我没有得到任何关于如何根据任何条件命名列的提示。如果有人能帮我指明正确的方向,我将不胜感激。

代码语言:javascript
运行
复制
fig = plt.figure(figsize = (16,8))

#some code for other plots

ax3 = fig.add_subplot(212)
groups = series.groupby(pd.Grouper(freq = 'M'))
months = pd.concat([pd.DataFrame(x[1].values) for x in groups], axis=1)
months = pd.DataFrame(months)
months.columns = range(1,13)
months.boxplot()
ax3.set_title('Results June 2018 - May 2019')

plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-28 01:49:49

您可以使用带有'%B'转换字符串的strftime函数来获取相应的月份名称,然后绘制它们。

下面是一些示例代码:

代码语言:javascript
运行
复制
series = pd.Series({'2018-06-01':0.012997,
'2018-06-02':0.009615,
'2018-07-03':0.012884,
'2018-06-04':0.013358,
'2018-08-05':0.013322,
'2018-09-06':0.011532,
'2018-10-07':0.018297,
'2018-11-08':0.018820,
'2018-12-09':0.031254,
'2018-06-10':0.016529})

series.index = pd.to_datetime(series.index)

fig = plt.figure(figsize = (16,8))

ax3 = fig.add_subplot(212)
group = series.groupby(pd.Grouper(freq = 'M')).sum()
plt.bar(group.index.strftime('%B'), group)

ax3.set_title('Results June 2018 - May 2019')

plt.show()

下面是它生成的对应图:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56995056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档