python 快速读取百万级小文件_Python如何读取数据量百万级的CSV文件数据?

本文展示了如何使用Mars DataFrame代替pandas,显著提高读取和处理百万级CSV文件的速度。在单机环境下,Mars读取与分组聚合操作的时间分别降至原pandas操作的3.1倍和2.8倍。安装Mars只需`pip install pymars`,对于大数据场景,还可利用Mars的分布式能力进行高效计算。
摘要由CSDN通过智能技术生成

是时候安利我们的开源库:Mars。Mars DataFrame 可以用来加速 pandas 执行,即使在单机。而代码几乎无需改动。

以下代码都是在我的笔记本上跑的。

任务一:只读取 CSV 文件

pandas:

In [1]: import pandas as pd

In [2]: %time df = pd.read_csv('ratings.csv')

CPU times: user 4.75 s, sys: 1.13 s, total: 5.88 s

Wall time: 4.71 s

Mars DataFrame:

In [1]: import mars.dataframe as md

In [2]: %time df = md.read_csv('ratings.csv').execute()

CPU times: user 9.55 s, sys: 4.9 s, total: 14.4 s

Wall time: 1.52 s

时间从 4.71s 下降到 1.52s(3.1x)。

任务二:读取 CSV + 分组聚合

pandas:

In [1]: import pandas as pd

In [2]: %%time

...: df = pd.read_csv('ratings.csv')

...: df.groupby('movieId').agg({'rating': ['max', 'min', 'std']})

...:

...:

CPU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值