将多个不同长度的时间序列合并到2D矩阵中

时间:2019-07-08 14:57:22

标签: python arrays pandas numpy time-series

我有一个时间戳数组,其中每个时间戳数组的长度都不同。例如,

[arr1, arr2, arr3....] 

arr1 = [0.24, 0.56, 0.77]
arr2 = [0.1, 0.24]
arr3 = [0.6, 0.7, 0.72, 0.88]

这是输出的样子:

NaN, 0.24, 0.56, Nan, Nan,  Nan, 0.77, Nan
0.1, 0.24,  Nan, Nan, Nan,  Nan,  Nan, Nan
Nan,  Nan,  Nan, 0.6, 0.7, 0.72,  NaN, Nan

如何继续将所有这些数组合并为一个2D矩阵?另一个要注意的是,每个单独的数组(arr1, arr2, ..)的大小都非常大(成千上万)。

我认为pandas merge功能可以使用,但我不知道如何进行。

1 个答案:

答案 0 :(得分:2)

这是熊猫的一种方法:

arrs = [arr1,arr2,arr3]

# convert to series
series = [pd.Series(arr,index=arr) for arr in arrs]

# concat with reindex
pd.concat(series, axis=1)

输出:

         0     1     2
0.10   NaN  0.10   NaN
0.24  0.24  0.24   NaN
0.56  0.56   NaN   NaN
0.60   NaN   NaN  0.60
0.70   NaN   NaN  0.70
0.72   NaN   NaN  0.72
0.77  0.77   NaN   NaN
0.88   NaN   NaN  0.88