python如何读取百万级的csv文件-Python如何读取数据量百万级的CSV文件数据?
是时候安利我们的开源库: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 times: user 6.56 s, sys: 1.15 s, total: 7.72 s
Wall time: 5.42 s
Out[2]:
rating
max min std
movieId
1 5.0 0.5 0.927513
2 5.0 0.5 0.958437
3 5.0 0.5 1.013307
4 5.0 0.5 1.111442
5 5.0 0.5 0.993108
... ... ... ...
176267 4.0 4.0 NaN
176269 3.5 3.5 NaN
176271 5.0 5.0 NaN
176273 1.0 1.0 NaN
176275 3.0 3.0 NaN
[45115 rows x 3 columns]
Mars DataFrame:
In [1]: import mars.dataframe as md
In [2]: %%time
...: df = md.read_csv('ratings.csv')
...: df.groupby('movieId').agg({'rating': ['max', 'min', 'std']}).execute()
...:
...:
CPU times: user 12.5 s, sys: 9.09 s, total: 21.6 s
Wall time: 1.93 s
Out[2]:
rating
max min std
movieId
1 5.0 0.5 0.927513
2 5.0 0.5 0.958437
3 5.0 0.5 1.013307
4 5.0 0.5 1.111442
5 5.0 0.5 0.993108
... ... ... ...
176267 4.0 4.0 NaN
176269 3.5 3.5 NaN
176271 5.0 5.0 NaN
176273 1.0 1.0 NaN
176275 3.0 3.0 NaN
[45115 rows x 3 columns]
时间从 5.42s 下降到 1.93s(2.8x)。
总结
使用 Mars 很简单。只需要:
pip install pymars
而数据数据特别大,还可以使用 Mars 分布式,Mars 很容易部署(通过几个命令),也支持在 k8s 集群拉起服务,yarn 的支持也会很快到来。
想参与 Mars 开发,欢迎提 PR
python如何读取百万级的csv文件-Python如何读取数据量百万级的CSV文件数据?相关推荐
- Winform中导出Excel数据量百万级的处理办法-导出为csv文件
场景 Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载: https://blog.csdn.net/B ...
- 日均数据量千万级,MySQL、TiDB 两种存储方案的落地对比
盖娅广告匹配系统(GaeaAD)用于支撑盖娅互娱全平台实时广告投放系统,需要将广告数据和游戏 SDK 上报的信息进行近实时匹配,本质上来说需要实时的根据各个渠道的广告投放与相应渠道带来的游戏玩家数据进 ...
- python医药数据_采集万方医药方向的期刊+文章+作者信息(数据量千万级)
最近将万方数据的爬取代码进行了重构,速度大概有10w每小时吧,因为属于公司项目,代码暂时就不开源了,所以在这里先说说思路和一些注意事项吧,顺带吐槽一下万方. 先上图: 其实逻辑也蛮简单的,医学类的期刊 ...
- Excel文件导出总结,包含大数据量的分批导出方式
文章目录 需求背景 参考内容 导出方式 代码实现 Excel4J 普通导出 POI原生方式 普通导出 大数据量分批导出 依赖版本 实现思路 POI工具类 数据写入 调用测试 测试结果 一个小意外 Ea ...
- 记一次百万数据量查询sql 优化
记一次百万数据量查询sql 优化 问题描述 问题分析过程 总结 简单了解用到的pgsql 的索引结构 pgsql 的with 扩展 对于更大数据量的数据还有没有其他更好的方案 问题描述 数据库用的是p ...
- python爬虫教程视频-13天搞定Python分布爬虫
1. 什么是爬虫? 网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分 ...
- 炸!亿级数据DB秒级平滑扩容!!!
一步一步,娓娓道来. 一般来说,并发量大,吞吐量大的互联网分层架构是怎么样的? 数据库上层都有一个微服务,服务层记录"业务库"与"数据库实例配置"的映射关系,通 ...
- python 评分卡_评分卡原理及Python实现
信用风险计量模型可以包括跟个人信用评级,企业信用评级和国家信用评级.人信用评级有一系列评级模型组成,常见是A卡(申请评分卡).B卡(行为模型).C卡(催收模型)和F卡(反欺诈模型). 今天我们展示的是 ...
- python not defined怎么解决_数据量太大?散点图装不下怎么办?用Python解决数据密度过大难题
当我们需要观察比较2个变量间的关系时,散点图是我们首选图表. 可当数据量非常大,数据点又比较集中在某个区间中,图表没法看,密密麻麻的怎么看? 怎么办?这时候就得看密度图了 什么是密度图? 所谓的密度图 ...
最新文章
- 百度:YOLOX和NanoDet都没我优秀!轻量型实时目标检测模型PP-PicoDet开源
- Fragment回调Activity的事件分发
- hashmap 复制_复杂链表的复制
- 0619-dedeCMS的安装、重装、目录说明、基本操作及注意事项
- win10 安装SQL Server 2005--以及---安装SQL2005之后卸载,重新安装时提示“安装默认报表服务器的必备组件检查失败”的方法
- 如何解决Vosviewer关键词共现分析出现的Incorrect number of columns错误
- OpenCL编程入门
- 国内第一款企业集中管理平台--极通EWEBS3.0
- java设置窗体图标_在java中怎么设置窗体的图标?详细步骤图解
- Ember之Computed Properties计算属性
- Kubernetes核心概念总结
- python实现10进制转换2进制(两种方法)
- keil软件仿真时如何使用逻辑分析仪查看波形
- 在直播软件搭建中,如何基于rtmp实现视频直播?
- 最新国内云计算服务商市场占有率排名,阿里云腾讯云华为云谁排名高
- cocos2d 3.3 lua 代码加密 luac
- 冬奥闭幕 不说再见 中国移动咪咕与王濛开启全新合作
- 如何用python开发app —— 前言
- 做芯片设计需要学编程吗?
- webp格式图片上传以及转PNG
热门文章
- android 分割线布局,Android RecyclerView网格布局(支持多种分割线)详解(2)
- 科普贴 | 颜值经济引爆的轻医美
- html中div屏幕居中,实现DIV屏幕居中
- 精细化管理计算机室取得的成效,班级精细化管理的实施与成效
- GNS3 配置Static p2p GRE over IPsec
- Java面试题整理(带答案)
- 3D 可视化入门:渲染管线原理与实践
- u大侠装服务器系统,U大侠U盘安装Ghost xp系统教程_教你怎么用U盘安装Windows XP系统 - U大侠,装机专家...
- 第3章 知识抽取:问题、方法和数据
- [应用交流]Excel鲜为人知的35招秘技