前提・実現したいこと
パイソン3のdiff関数を活用し、以下のBook1.csvを用いて処理したいのですが、
100万行以上あるcsvデータで
処理するとメモリーエラーになります。
ここに質問の内容を詳しく書いてください。
Book1.csvに以下のファイルが入っています。
日付 品番 在庫
11-1 A 101
11-1 B 82
11-3 B 70
11-5 A 95
11-7 A 90
11-10 A 70
11-11 B 95
11-17 A 150
・ ・ ・
・ ・ ・
・ ・ ・
Book1.csvに以下のようにファイルを更新したいです。
日付 品番 在庫 売り 補充
11-1 A 101 0 0
11-1 B 82 0 0
11-3 B 70 12 0
11-5 A 95 6 0
11-7 A 90 5 0
11-10 A 70 20 0
11-11 B 95 0 25
11-17 A 150 0 80
・ ・ ・
・ ・ ・
・ ・ ・
※売り=在庫(現在)-在庫(一つ前)>0
※補充=在庫(現在)-在庫(一つ前)<0
※品番Aと品番Bは出てくる頻度はばらばらです。
発生している問題・エラーメッセージ
Book1.csvの読み込み、diff関数(差分)、まではうまくいきましたが、
行数が多くてメモリーエラーになります。
該当のソースコード
以下のように書いて100万行あるcsvを処理するとエラーになってしまいます。
diff_ser = df.groupby('品番')['在庫'].diff()
df.loc[diff_ser<0,'売り'] = -diff_ser
df.loc[diff_ser>0,'補充'] = diff_ser
df = df.fillna(0)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/06 13:07
2019/02/07 00:14