700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python csv 大文件_python 快速把超大txt文件转存为csv的实例

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

时间:2019-12-07 23:53:36

相关推荐

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

今天项目有个需求,就是把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 快速把超大txt文件转存为csv的实例

本文地址: /jiaoben/python/242877.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。