Pythonにてメモリに乗り切らない大容量csv(数百GB)の加工の仕方についてアドバイスをください。
処理としては単純で、各レコードを一意に特定するようなIDを新たなカラムに格納していくだけなのですが、加工対象のcsvが大容量でメモリに乗らないため、どのように処理するか悩んでおります。
加工のイメージは以下の通りです。
name, amount, date
tanaka, 1000, 20180101
satou, 1200, 20180101
suzuki, 899, 20180102
といったcsvに対して
tranID, name, amount, date
0001, tanaka, 1000, 20180101
0002, satou, 1200, 20180101
0003, suzuki, 899, 20180102
といった形式で、一意となるIDをふるイメージです。
メモリにのる量であれば、panadsを使ってdataframeでtranIDを必要レコード数分作成し、結合すればよいかと思ったのですが、
今回ファイルサイズが大きいため、1行ずつの処理などが必要と思っておりますが、
いまいちいい書き方が思いつかず、アドバイスをいただけますと幸いです。
使用している環境はPython3系になります。
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー