【发布时间】:2017-11-13 08:06:50
【问题描述】:
我有一个 pandas 数据框,它可以捕获一段时间内的值(可能是数年的月度、数年的天数或数月的天数)。不能保证时间序列是连续的(一年中可能会缺少几个月)
""" no guarantee that this index will have an entry for every month of the time range!"""
dates = pd.date_range('1/1/2015', periods=36, freq='M')
df = pd.DataFrame(index = dates)
df['value'] = df.index.year * 0.1 + df.index.month * 0.05
df.plot()
它可以给我一个简单的时间序列图
但我想做的是一个“季节性”的情节。这会将每年的数据显示为同一月份索引上的不同行。作为一个简单的展示:
import numpy as np
index = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
df = pd.DataFrame(index = index)
df[2015] = np.arange(12)*0.4+1
df[2016] = np.arange(12)*0.35+1.4
df[2017] = np.arange(12)*0.5+1.2
df.plot()
我正在寻找一种“pythonic”或优雅的方式来执行此操作。我的转型尝试令人难以置信的粗俗,意大利面条,垃圾代码。我确信必须有一些整洁的方法使用 pandas/python 来有效和干净地显示这种转换。特别是,我想找到一种抽象的方法来做到这一点,这样我就可以将其推广到制作显示“季节性”天数的图表一个月等等。
首先,我什至不确定什么是构建此图表的好索引。
【问题讨论】: