熊猫时间序列与叠加的线条

时间:2016-09-08 04:13:13

标签: python pandas

我在熊猫中有两个数据框,一个有四个时间序列,第二个数据是第二个数据,如下所示

timestamp            ID     value1 value2 value3 value4
2016/01/01T01:01:01  1234      100   50      50    60
2016/01/01T01:01:02  1234      101   48      48    52
2016/01/01T01:01:02  1234      101   48      48    52
....

和第二个具有所选时间间隔的平均值

ID start_time    end_time  avg_value1 avg_value2 avg_value3 avg_value4
1234 01:01:01      01:01:15     100.1    50.2        49          55
...

我想将这两个作为时间序列叠加在一起,平均值显示为从start_time开始到end_time结束的平直线。我将如何在最新版本的熊猫中进行此操作?

1 个答案:

答案 0 :(得分:0)

最简单的方法是将所有数据放入单个DataFrame中,并使用内置的.plot()方法。

假设您的原始DataFrame名为df,则下面的代码可以解决您的问题(您可能需要删除" ID"列):

means = df.groupby(pd.TimeGrouper('15s')).mean()
means.columns = ['avg_'+col for col in df.columns]
merged_df = pd.concat([df, means], axis=1).fillna(method='ffill')
merged_df.plot()

使用一些日内1s蜡烛库存数据,你会得到这样的结果:

enter image description here

如果你想进一步定制你的情节,我恐怕你将不得不花费几个小时/天来研究matplotlib的基础知识。

相关问题