gpt4 book ai didi

python - 在 python pandas 中添加 2 个数据框

转载 作者:行者123 更新时间:2023-11-30 23:09:03 24 4
gpt4 key购买 nike

我想在 Python Pandas 中组合 2 个以下形状的独立数据框:

Df1=
A B
1 1 2
2 3 4
3 5 6

Df2 =
C D
1 a b
2 c d
3 e f

我想要如下:

df = 
A B C D
1 1 2 a b
2 3 4 c d
3 5 6 e f

我正在使用以下代码:

dat = df1.join(df2)

但问题是,在我的实际数据框中,有超过 200 万行,因此需要很长时间并且消耗大量内存。

有什么方法可以更快、更有效地利用内存吗?

预先感谢您的帮助。

最佳答案

如果我正确地阅读了您的问题,那么您的索引完全对齐,您只需将列合并到单个 DataFrame 中即可。如果这是正确的,那么事实证明,将列从一个 DataFrame 复制到另一个 DataFrame 是最快的方法([92][93])。 f 是下面示例中我的 DataFrame:

In [85]: len(f)
Out[86]: 343720

In [87]: a = f.loc[:, ['date_val', 'price']]
In [88]: b = f.loc[:, ['red_date', 'credit_spread']]

In [89]: %timeit c = pd.concat([a, b], axis=1)
100 loops, best of 3: 7.11 ms per loop

In [90]: %timeit c = pd.concat([a, b], axis=1, ignore_index=True)
100 loops, best of 3: 10.8 ms per loop

In [91]: %timeit c = a.join(b)
100 loops, best of 3: 6.47 ms per loop

In [92]: %timeit a['red_date'] = b['red_date']
1000 loops, best of 3: 1.17 ms per loop

In [93]: %timeit a['credit_spread'] = b['credit_spread']
1000 loops, best of 3: 1.16 ms per loop

我还尝试一次复制两列,但由于某些奇怪的原因,它比单独复制每一列慢两倍多。

In [94]: %timeit a[['red_date', 'credit_spread']] = b[['red_date', 'credit_spread']]
100 loops, best of 3: 5.09 ms per loop

关于python - 在 python pandas 中添加 2 个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419952/

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