前提・実現したいこと
600MB程度のcsvファイルから特定のカラムのみ取り出して別ファイルに出力したいです。
元のcsvはバックアップ用でカラムが約200あって扱いづらいので、別の用途で使用するために別ファイルを作ろうと思っています。
発生している問題・エラーメッセージ
pandas
のchunksize
を使って試してみたところ、元ファイルの行数と一致していません。
chunksize
の設定値を変えると出力される行数も微妙に変化します。
元ファイルの行数は17万行あるのに出力されるのは約6万行です。
該当のソースコード
python
1 2import pandas as pd 3 4target = 'Account_original.csv' 5 6df0 = pd.read_csv( 7 target, 8 sep='\t', 9 encoding='utf-8', 10 usecols=['Name','AccountCode__c','CorporateAddress__c','CorporationNumber__c'], 11 chunksize=1000 12 ) 13 14df0.get_chunk() 15df = pd.concat((r for r in df0), ignore_index=True) 16out = 'Account.csv' 17df.to_csv(out, sep='\t', encoding='utf-8', index=False)
試したこと
当初は一度に読み込もうとしたのですが、出力後の行数がおかしかったので分割してみました。
それでも解決しなかったのでchunksize
の値を変更してみたり、出力するカラムを1つにして試してみたりしましたが結果は同じでした。
また、pandas
を使わずにcsv.reader
を使うと正常に出力されるますが時間がかかりすぎて困っています。
バージョン
os: Windows
python: 3.8.1
pandas: 1.1.4
回答1件
あなたの回答
tips
プレビュー