我运行了一个测试,测试了10种写入数据帧的方法和10种读取数据帧的方法。我发现测试here(我做了一些调整并将拼花地板添加到列表中)最好的方法是:
df.to_feather('test.feather') :
39.34544535900204s
table=pyarrow.Table.from_pandas(df)
pq.write_table(table, "test_parquet_write_snappy_dict.parquet",
use_dictionary=True, version='2.0', compression='snappy') :
40.6873751259991s
table=pyarrow.Table.from_pandas(df, nthreads=4)
pq.write_table(table, "test_parquet_write_snappy_dict.parquet",
use_dictionary=True, version='2.0', compression='snappy') :
41.051620177000586s
为了写作
及
pd.read_hdf('test_fixed.hdf', 'test') :
1.5275615360005759
pd.read_feather('test.feather') :
20.635139821002667
pd.read_pickle('test.pkl') :
37.21131302599679
为了阅读
以下是数据帧:
sz = 50000000
df = pd.DataFrame({'A': randn(sz), 'B': randn(sz), 'C': randn(sz), 'D': randn(sz)})
我有两个问题。{
第二,40秒对我来说还是太慢了。有没有办法提高速度?通过对to_feather
或write_table
使用不同的参数,或者使用我不知道的函数/模块
我不是要求有人来看我,我可以自己做,我不想浪费任何人的时间。我正在寻找一个已经知道这个问题的人,他可以带领我找到他知道的最快的方法
这本身并不是一个确切的答案,但这里有一个更全面的基准测试,它包含了针对像您这样的数据的各种方法
在我的盒子(Ryzen 7 3700X、SSD磁盘、Windows 10、Python 3.8、最新的Pandas等)和一百万行DF(懒得等待CSV结果)上,我得到了
所以HDF5肯定不是快几个数量级
相关问题 更多 >
编程相关推荐