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 相关文章推荐
python实现用于测试网站访问速率的方法
May 26 Python
编写自定义的Django模板加载器的简单示例
Jul 21 Python
菜鸟使用python实现正则检测密码合法性
Jan 05 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
实例讲解Python爬取网页数据
Jul 08 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
浅析Python3 pip换源问题
Jan 06 Python
python实现ssh及sftp功能(实例代码)
Mar 16 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
详解python字符串驻留技术
May 21 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
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
浅说js变量
2011/05/25 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
2017/07/24 Javascript
深入理解React高阶组件
2017/09/28 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
[38:40]2018DOTA2亚洲邀请赛 4.6淘汰赛 mineski vs LGD 第一场
2018/04/10 DOTA
python制作websocket服务器实例分享
2016/11/20 Python
Django验证码的生成与使用示例
2017/05/20 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
高中校园广播稿
2014/01/11 职场文书
迎新生标语大全
2014/10/06 职场文书
2014年项目工作总结
2014/11/24 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
八年级语文教学反思
2016/03/03 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js