加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 绘制pandas数据框架与年度数据

发布时间:2020-12-20 12:08:14 所属栏目:Python 来源:网络整理
导读:我有一个格式的数据框 value2000-01-01 12000-03-01 22000-06-01 152000-09-01 32000-12-01 72001-01-01 12001-03-01 32001-06-01 82001-09-01 52001-12-01 32002-01-01 12002-03-01 12002-06-01 82002-09-01 52002-12-01 19 (指数是日期时间)我需要逐年绘制
我有一个格式的数据框

value
2000-01-01    1
2000-03-01    2
2000-06-01    15
2000-09-01    3
2000-12-01    7
2001-01-01    1
2001-03-01    3
2001-06-01    8
2001-09-01    5
2001-12-01    3
2002-01-01    1
2002-03-01    1
2002-06-01    8
2002-09-01    5
2002-12-01    19

(指数是日期时间)我需要逐年绘制所有结果,以比较每3个月的结果(数据也可以是每月),加上所有年份的平均值.

我可以轻松地分别绘制它们,但由于索引,它将根据索引移动绘图:

fig,axes = plt.subplots()
df['2000'].plot(ax=axes,label='2000')
df['2001'].plot(ax=axes,label='2001')
df['2002'].plot(ax=axes,label='2002')
axes.plot(df["2000":'2002'].groupby(df["2000":'2002'].index.month).mean())

所以这不是理想的结果.我在这里似乎有些答案,但你必须连续,创建一个多索引和情节.如果其中一个数据帧具有NaN或缺失值,则可能非常麻烦.有熊猫的方法吗?

解决方法

这是你想要的吗?您可以在转换后添加方法.

df = pd.DataFrame({'value': [1,2,15,3,7,1,8,5,19]},index=pd.DatetimeIndex(['2000-01-01','2000-03-01','2000-06-01','2000-09-01','2000-12-01','2001-01-01','2001-03-01','2001-06-01','2001-09-01','2001-12-01','2002-01-01','2002-03-01','2002-06-01','2002-09-01','2002-12-01']))


pv = pd.pivot_table(df,index=df.index.month,columns=df.index.year,values='value',aggfunc='sum')
pv
#     2000  2001  2002
# 1      1     1     1
# 3      2     3     1
# 6     15     8     8
# 9      3     5     5
# 12     7     3    19

pv.plot()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读