我有两个时间序列。每个时间序列(s1和s2)都由一个值列表和一个相应的时间列表(例如时间戳或其他什么)表示。我使用的是python,例如:
s1_values = [6,8,6,3,7,9] # len(s1_values) == len(s1_times)
s1_times = [1,3,6,7,8,12]
s2_values = [3,8,7,2,5,4,6,2] # len(s2_values) == len(s2_times)
s2_times = [2,4,5,7,8,9,10,13]
我想看看两个时间序列s1和s2之间的关系,所以我希望能够使用Matplotlib绘制s1_值(在x轴上)和s2_值(在y轴上),但是由于这两个时间序列在时间上没有对齐,我不知道如何做到这一点。在
也许有一些常见的方法来处理时间序列,但我不知道它们。在
您可以使用
pandas
(docs),这对时间序列数据非常有用。在本例中,您将生成两个数据帧,然后对它们进行合并和排序。在merge
为您提供了一个合并的“时间”序列(以不同方式合并here),将nan
值插入值列中,其中没有该时间的值。然后按共享的Time
列进行排序。df.fillna
函数(docs)接受method
参数,如果是ffill
或{bfill
则用下一个有效值填充。或者,您可以使用df.interpolate
来进行缺失值的线性插值(docs)。在方便的方法是
pandas
包装matplotlib
,这样你就可以直接从数据帧绘图了。在使用
fillna(method='ffill')
使用
interpolate()
相关问题 更多 >
编程相关推荐