объединить несколько временных рядов разной длины в двухмерную матрицу - PullRequest
2 голосов
/ 08 июля 2019

У меня есть массив массивов меток времени, где каждый массив меток времени имеет разную длину.Например,

[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 Ответ

2 голосов
/ 08 июля 2019

Вот подход с пандами:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...