Использование списка и np.array
:
df.assign(sumCol=[np.array(x) + np.array(y) for x, y in zip(df.Col1, df.Col2)])
DateTime Col1 Col2 sumCol
0 2018-01-02 [1, 2] [11, 21] [12, 23]
1 2018-01-03 [3, 4] [31, 41] [34, 45]
Если массивы всегда одинаковой длины:
df.assign(sumCol=[np.stack([x,y]).sum(0) for x, y in zip(df.Col1, df.Col2)])
Чтобы применить это ко многим столбцам, вы можете использовать iloc
zip(*df.iloc[:, 1:].values.T)
Вот пример более широкого DataFrame:
A B C D
0 1 [1, 2] [1, 2] [1, 2]
1 2 [3, 4] [3, 4] [3, 4]
2 3 [5, 6] [5, 6] [5, 6]
Использование zip
с df.values
df.assign(sumCol=[np.stack(a).sum(0) for a in zip(*df.iloc[:, 1:].values.T)])
A B C D sumCol
0 1 [1, 2] [1, 2] [1, 2] [3, 6]
1 2 [3, 4] [3, 4] [3, 4] [9, 12]
2 3 [5, 6] [5, 6] [5, 6] [15, 18]