pythonは速く超大型txtファイルをcsvに保存した例を示します。

1293 ワード

今日のプロジェクトの需要があります。txtファイルをcsvに変えて、txtの間はスペースで区切られています。csvになる時はスペースをカンマに変えなければなりません。ネットで探しているバージョンは3行のコードだけが必要です。特に鋭いです。

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は100 MB未満で、560 W行のデータは3分間で変換済みです。
それから私は5600 W行の1.2 Gの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
ここで私はデータを小さいサイズに分けました。一つのデータは560万行です。11回に分けてロードすれば全部ロードできます。速度も速いし、全部で5分ぐらいかかりました。
注意します。get_chunk()の中のパラメータはバイト数ではなくファイルの行数を表します。
以上のpythonは急速に大規模txtファイルをcsvに転送した例は、小編集が皆さんに共有している内容の全てです。参考にしていただければと思います。どうぞよろしくお願いします。