python 快速把超大txt文件转存为csv的实例


Posted in Python onOctober 26, 2018

今天项目有个需求,就是把txt文件转为csv,txt之间是空格隔开,转为csv时需要把空格转换为逗号,网上找的一个版本,只需要三行代码,特别犀利:

import numpy as np
import pandas as pd

data_txt = np.loadtxt('datas_train.txt')
data_txtDF = pd.DataFrame(data_txt)
data_txtDF.to_csv('datas_train.csv',index=False)

上述的datas_train.txt只有不到100MB,560W行数据,三分钟之内转换完毕。

然后我换了一个5600W行共1.2G的txt文本,用上述代码转换,电脑直接卡死了。

原因在于上述代码会把全部的txt加载进内存,然后再转换,这就会造成电脑内存耗尽。

然后就想到了切割数据的办法,具体实现如下:

import numpy as np
import pandas as pd


train_data = pd.read_table('big_data.txt',iterator=True,header=None)

while True:
 try:
  chunk = train_data.get_chunk(5600000)
  chunk.columns = ['user_id','spu_id','buy_or_not','date']
  chunk.to_csv('big_data111.csv', mode='a',header=False,index = None)
 except Exception as e:
  break

这里我把数据分成了小块,每块数据有560W行,分11次加载就能全部加载完了,速度也很快,总共花了5分钟左右。

注意,get_chunk()里面的参数表示文件的行数,而非字节数。

以上这篇python 快速把超大txt文件转存为csv的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
python3.x上post发送json数据
Mar 04 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
使用python实现ftp的文件读写方法
Jul 02 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
推荐8款常用的Python GUI图形界面开发框架
Feb 23 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
带你学习Python如何实现回归树模型
Jul 16 Python
基于python实现图片转字符画代码实例
Sep 04 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 #Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 #Python
Python异常的检测和处理方法
Oct 26 #Python
Python subprocess库的使用详解
Oct 26 #Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 #Python
Python分割指定页数的pdf文件方法
Oct 26 #Python
python 将json数据提取转化为txt的方法
Oct 26 #Python
You might like
Search Engine Friendly的URL设计
2006/10/09 PHP
php权重计算方法代码分享
2014/01/09 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
最常用的12种设计模式小结
2011/08/09 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
解决layui的input独占一行的问题
2019/09/10 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python计算圆周长、面积、球体体积并画出圆
2014/04/08 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python对象的属性访问过程详解
2020/03/05 Python
django 解决自定义序列化返回处理数据为null的问题
2020/05/20 Python
浅析python 字典嵌套
2020/09/29 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
仓库管理专业个人的自我评价
2013/12/30 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
应用心理学专业求职信
2014/08/04 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android