我在熊猫中有两个数据框,一个有四个时间序列,第二个数据是第二个数据,如下所示
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结束的平直线。我将如何在最新版本的熊猫中进行此操作?
答案 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蜡烛库存数据,你会得到这样的结果:
如果你想进一步定制你的情节,我恐怕你将不得不花费几个小时/天来研究matplotlib的基础知识。