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 相关文章推荐
Pyramid将models.py文件的内容分布到多个文件的方法
Nov 27 Python
Python制作数据导入导出工具
Jul 31 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Tensorflow之Saver的用法详解
Apr 23 Python
django admin后台添加导出excel功能示例代码
May 15 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
Python 2种方法求某个范围内的所有素数(质数)
Jan 31 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
python绘制分布折线图的示例
Sep 24 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
初探nodeJS
2017/01/24 NodeJs
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
Javascript中从学习bind到实现bind的过程
2018/01/05 Javascript
微信小程序框架wepy之动态控制类名
2018/09/14 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
Python Series从0开始索引的方法
2018/11/06 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
django celery redis使用具体实践
2019/04/08 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
python连接mongodb集群方法详解
2020/02/13 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
python中uuid模块实例浅析
2020/12/29 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
小学领导班子对照材料
2014/08/23 职场文书
领导干部个人对照检查材料(群众路线)
2014/09/26 职场文书
商铺门面租房协议书
2014/10/21 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书