やっぱデータ整形にはSASだなあという話

やっぱデータ整形にはSASだなあという話

ここしばらくデータの整形から分析まで論文丸ごとPythonで済ますことが多かったんだけど、巨大なデータを扱うときにはやっぱりSASの方がいいことを再確認した。分析ならMCMCでもDeep LearningでもPythonでできるんだけど、生データの整形がPythonだとできない。Python + pandasでやるとJupyterのカーネルがクラッシュする(Colaboratoryなんかではもちろん耐えられない)。Jupyterだときついから直でpythonスクリプト書いてバッチジョブで走らせたんだけどそれでもクラッシュする。

sas7bdatパッケージでやるなら

from sas7bdat import SAS7BDAT as sas
fname = '/DIRNAME/FNAME'
with sas(fname+'.sas7bdat') as f:
    d = f.to_data_frame()
d.to_pickle(fname+'.pkl')

普通にpandasでやるなら

import pandas as pd
fname = '/DIRNAME/FNAME'
pd.read_csv(fname+'.sas7bdat').to_pickle(fname+'.pkl')

でやればいい(実際にはpandas DataFrameをpickleとして保存する前に変数をdropしたりpd.to_datetime()で日付パースしたり変数型整えたりしてる)。

…某所の後輩さんのブログにも同じこと書いてあるからあんま同じ内容書くのもあれなんだけど。

これをPythonでやろうと思ったらcsvの生データ自体を行数で切り分けて読み込んで、塊ごとに集計して足し合わせないといけない(Deep Learningでミニバッチで学習するみたいなノリのやつ。名前わかんないけど)。めんどくさいけどpythonでもやりようはある。

だからまあ本当はそれでやりたかったんだけど。データの整理、加工と分析で違うツール使うのは面倒くさい。ただ今回の場合はSASデータ(.sas7bdat)しかなかったので仕方なくSASでやることにした。SASだと書いて走らせて待ってれば(何日かかるかは別として)まあ終わる。そっちの方が気は楽だよね。

最近聴いている曲
Awich『紙飛行機』
去年よく聴いてた曲。HOOKの歌はEGO-WRAPPIN’『色彩のブルース』からのサンプリング。