gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:43 25 4
gpt4 key购买 nike

我有两个 numpy ndarrays - 每个都有自己的时间戳维度。我想将它们合并在一起。但是它们的时间戳的间隔不一定相同。这是我的意思的一个例子:

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,您可以执行外部合并,然后进行排序。这是很自然的,因为在 Pandas 框架中使用了 NumPy 数组。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com