国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

python 快速把超大txt文件轉(zhuǎn)存為csv的實(shí)例

2020-02-15 23:24:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天項(xiàng)目有個(gè)需求,就是把txt文件轉(zhuǎn)為csv,txt之間是空格隔開,轉(zhuǎn)為csv時(shí)需要把空格轉(zhuǎn)換為逗號(hào),網(wǎng)上找的一個(gè)版本,只需要三行代碼,特別犀利:

import numpy as npimport pandas as pddata_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行數(shù)據(jù),三分鐘之內(nèi)轉(zhuǎn)換完畢。

然后我換了一個(gè)5600W行共1.2G的txt文本,用上述代碼轉(zhuǎn)換,電腦直接卡死了。

原因在于上述代碼會(huì)把全部的txt加載進(jìn)內(nèi)存,然后再轉(zhuǎn)換,這就會(huì)造成電腦內(nèi)存耗盡。

然后就想到了切割數(shù)據(jù)的辦法,具體實(shí)現(xiàn)如下:

import numpy as npimport pandas as pdtrain_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

這里我把數(shù)據(jù)分成了小塊,每塊數(shù)據(jù)有560W行,分11次加載就能全部加載完了,速度也很快,總共花了5分鐘左右。

注意,get_chunk()里面的參數(shù)表示文件的行數(shù),而非字節(jié)數(shù)。

以上這篇python 快速把超大txt文件轉(zhuǎn)存為csv的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長(zhǎng)站。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 益阳市| 乐昌市| 新绛县| 巴林左旗| 临海市| 和顺县| 武乡县| 武胜县| 鹤峰县| 茌平县| 安岳县| 汝州市| 霞浦县| 漠河县| 马龙县| 沁水县| 和田县| 旬阳县| 达孜县| 合川市| 塔城市| 林芝县| 顺平县| 句容市| 壤塘县| 靖宇县| 盐山县| 宁晋县| 云阳县| 东平县| 綦江县| 贡山| 洪泽县| 台湾省| 武邑县| 武威市| 依兰县| 巩义市| 西藏| 隆尧县| 忻州市|