私の要件は、csvファイルから重複行を削除することですが、ファイルのサイズは11.3GBです。だから私はパンダとpythonファイルジェネレータをマークしました。pandas read_csvはPythonに比べて遅いのですか?
Pythonのファイルジェネレータ:
def fileTestInPy():
with open(r'D:\my-file.csv') as fp, open(r'D:\mining.csv', 'w') as mg:
dups = set()
for i, line in enumerate(fp):
if i == 0:
continue
cols = line.split(',')
if cols[0] in dups:
continue
dups.add(cols[0])
mg.write(line)
mg.write('\n')
使用パンダのread_csv:
import pandas as pd
df = pd.read_csv(r'D:\my-file.csv', sep=',', iterator=True, chunksize=1024*128)
def fileInPandas():
for d in df:
d_clean = d.drop_duplicates('NPI')
d_clean.to_csv(r'D:\mining1.csv', mode='a')
の詳細: サイズ:11.3ギガバイト 行:億、しかし、この5000万が Pythonのバージョンが重複している:3.5.2 パンダバージョン:0.19.0 RAM:8ギガバイト CPU:コアi5の2.60GHz
ここでは、Pythonファイルジェネレータを使用すると643秒がかかりましたが、私がパンダを使用したときには1756がかかりました。
私のシステムでもPythonファイルジェネレーターを使用してもハングしませんでしたが、パンダを使用したときにシステムがハングアップしました。
私はパンダで正しい方法を使用していますか? でも11.3GBファイルでソートしたいのですが、どうすればいいですか?
スクリーンショットではなくコードフラグメントを直接投稿してください。それらは読みやすく、カット/ペーストが容易です。 – tdelaney
@tdelaneyごめんなさい、今追加されました。 – dhana