我们目前有一个用C++编写的数据导入/转换工具,它主要处理文本数据(例如,几种不同格式的时间戳),并应用一些标准化/清理。
当前的解决方案速度非常快,性能非常关键。例如,我们优化以最小化/避免解析循环中的对象分配,因为这将为我们处理的每一行调用,并可能产生严重的性能影响。
我们想要实现的是灵活地添加新的输入格式或简单地通过更改脚本/配置文件来应用额外的转换,而不是重新编译应用程序。
问题是:我们是否能够使用Python Pandas数据处理框架实现类似的性能,因为它中的大多数似乎也使用了低级优化的C代码。
(这里的“可比较”是指性能差异在一定的范围内,可以通过添加2-4个额外的线程来弥补)
Pandas是这项工作的合适工具吗?还是有不同的建议?
发布于 2013-11-08 02:47:54
我不想让你感到困惑,但是如果你真的想要速度,那么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 loophttps://stackoverflow.com/questions/19841456
复制相似问题