我有一个具有多年温度记录的温度文件,格式如下:
2012-04-12,16:13:09,20.6 2012-04-12,17:13:09,20.9 2012-04-12,18:13:09,20.6 2007-05-12,19:13:09,5.4 2007-05-12,20:13:09,20.6 2007-05-12,20:13:09,20.6 2005-08-11,11:13:09,20.6 2005-08-11,11:13:09,17.5 2005-08-13,07:13:09,20.6 2006-04-13,01:13:09,20.6
每年的记录数量和时间不同,因此熊猫的datetimeindices都不同。
我想在同一图中绘制不同年份的数据以进行比较。X轴为1月至12月,Y轴为温度。我应该怎么做呢?
尽管Chang的答案说明了如何在同一图形上多次绘制,但是在这种情况下,使用agroupby和unstacking可能会更好:
groupby
unstack
(假设您已经在数据框中使用了日期时间索引)
In [1]: df Out[1]: value datetime 2010-01-01 1 2010-02-01 1 2009-01-01 1 # create additional month and year columns for convenience df['Month'] = map(lambda x: x.month, df.index) df['Year'] = map(lambda x: x.year, df.index) In [5]: df.groupby(['Month','Year']).mean().unstack() Out[5]: value Year 2009 2010 Month 1 1 1 2 NaN 1
现在很容易绘制(每年作为单独的一行):
df.groupby(['Month','Year']).mean().unstack().plot()