iPhoneのHealthデータをエクスポートしてゴニョゴニョしてみる その4

この記事の続きです。

deutschina.hatenablog.com

やりたいことはだいたい自動提案されてくる

Dataprepを使っていいなと思うのは、処理した列を選択(クリック)すると、右側に処理候補がいくつか自動提案されてきて、やりたいことが、だいたいその中に入っているということ。

列の削除

例えば、この列いらないと思ってクリックすると、

f:id:deutschina:20180523083800p:plain

右側の一番上に、Delete column (列の削除)というのが表示されて、すでに選択された状態になっている。ここでAddをクリックしたら、ステップの追加は完了。これは簡単だよね。

列を追加して新しい関数を仕込む

f:id:deutschina:20180523083806p:plain

次は、startDateという日付+時刻の項目の中から、日付部分のみを抜き出す列を用意した部分(New Formula)。既存の列にDATEFORMATを被せるだけで良いのかなと思ったけど、あとで消せば良いので別項目に持って行くことに。

不要な行を消す

f:id:deutschina:20180523083810p:plain

いらない行を消すのは、Keep Rowsを使う。いらない行を消すというよりは、必要な行を残すという表現の方が合うかも。

行の合計

行を集約する場合は、Aggregateを使用する。

f:id:deutschina:20180523083815p:plain

この例では、歩数を合計するSUM関数を使い、さらにどの項目をグループ化するか(Group by)を指定してることで、各日ごとの歩数の合計が算出される。

f:id:deutschina:20180523083821p:plain

最後にもう1回Aggreageしているのは、同じ日に複数の入力系統からの歩数データがあることを確認したから。自分に甘い(笑)ので、MAX関数を使ったけど、例えば特定の入力系統だけを信頼するなら、Keep Rowsを使うという考えもあるし、採用すべき入力系統が日によって違うなら、AVERAGEを取るなり、自分に厳しい人ならMINを使うという手もあると思います。

長くなったので、記事を改めます。次はいよいよ2つのファイルをマージしてジョブを流すところまで行ってみたいと思います。

(つづく)