gpt4 book ai didi

c++ - Python Pandas 与 C++ 文本 CSV 数据导入解决方案的性能对比

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:34 29 4
gpt4 key购买 nike

我们有一个目前用 C++ 编写的数据导入/转换工具,它主要处理文本(例如,几种不同格式的时间戳)数据并应用一些规范化/清理。

当前的解决方案速度非常快,性能至关重要。例如。我们进行了优化以最小化/避免解析循环中的对象分配,因为我们处理的每一行都会调用它,并且会对性能产生严重影响。

我们想要实现的是通过更改脚本/配置文件而不是重新编译应用程序来灵活地添加新的输入格式或应用额外的转换。

问题是:我们是否能够使用 Python Pandas 数据处理框架实现类似的性能,因为它的大部分似乎也使用低级优化的 C 代码。

(这里的“相当”是指性能差异在一定范围内,可以通过添加 2-4 个额外的线程来补偿)

Pandas 是这项工作的正确工具还是有不同的建议?

最佳答案

不是要让您感到困惑,但如果您真的想要速度,那么 HDF5 是最佳选择,甚至不解析 csv(因此进行一些预处理可以大有帮助)。 a related comparision of hdf and sql

In [9]: df = DataFrame(randn(1000000,2),columns=list('AB'))

In [10]: df['date'] = Timestamp('20130101')

In [11]: df.to_csv('test.csv',mode='w')

In [12]: df.to_hdf('test.h5','df',mode='w')

In [13]: %timeit read_csv('test.csv',index_col=0)
1 loops, best of 3: 948 ms per loop

In [14]: %timeit pd.read_hdf('test.h5','df')
10 loops, best of 3: 20.2 ms per loop

关于c++ - Python Pandas 与 C++ 文本 CSV 数据导入解决方案的性能对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841456/

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