在同一图中绘制不同的数据框

发布于 2021-01-29 14:55:43

我有一个具有多年温度记录的温度文件,格式如下:

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轴为温度。我应该怎么做呢?

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    尽管Chang的答案说明了如何在同一图形上多次绘制,但是在这种情况下,使用agroupbyunstacking可能会更好:

    (假设您已经在数据框中使用了日期时间索引)

    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()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看