python - 合并 2 个带有时间戳的 numpy 数组

标签 python arrays numpy array-merge numpy-ndarray

我有两个 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/

相关文章:

python - 在 Linux 上使用 Python 中受密码保护的 Excel 工作表

python - Dask 加载 JSON(用于实时绘图)

python - 是否可以将 plotly 表保存为 png?

c - 段错误 - 在 C 中声明和初始化数组

Python - 拟合二维矩形数据

python - 复制numpy数组的速度

python - 在python matplotlib中连接具有相同值的点

python - Numpy:跨越多 channel 图像

java - 删除整个数组

c - 从 argv 中读取数字输入数据并存储到 C 中的 int 数组中