我有两个 numpy ndarray - 每个都有自己的时间戳维度。我想将它们合并在一起。但它们的时间戳间隔不一定相同。这是我的意思的一个例子:
Array 1: names = ['timestamp', 'value']
a1 = [(1531000000, 0), (1532000000, 1), (1533000000, 2), (1534000000, 3)]
Array 2: names = ['timestamp', 'color']
a2 = [(1531500000, "blue"), (1532000000, "black"), (1533500000, "green"), (1534000000, "red")]
Resulting Array: names = ['timestamp', 'value', 'color']
a3 = [(1531000000, 0, nan), (1531500000, nan, "blue"), (1532000000, 1, "black"), (1533000000, 2, nan), (1533500000, nan, "green"), (1534000000, 3, "red")]
最佳答案
使用 Pandas,您可以执行外部合并然后排序。这是很自然的,因为 NumPy 数组是在 Pandas 框架内使用的。
import pandas as pd
res = pd.merge(df1, df2, how='outer').sort_values('timestamp').values.tolist()
结果
[[1531000000, 0.0, nan],
[1531500000, nan, 'blue'],
[1532000000, 1.0, 'black'],
[1533000000, 2.0, nan],
[1533500000, nan, 'green'],
[1534000000, 3.0, 'red']]
设置
names = ['timestamp', 'value']
a1 = [(1531000000, 0), (1532000000, 1), (1533000000, 2), (1534000000, 3)]
df1 = pd.DataFrame(a1, columns=names)
names = ['timestamp', 'color']
a2 = [(1531500000, "blue"), (1532000000, "black"), (1533500000, "green"), (1534000000, "red")]
df2 = pd.DataFrame(a2, columns=names)
关于python - 合并 2 个带有时间戳的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52539461/