juliaで前処理大全をやってみる

30 May 2021

(src=https://pixabay.com/photos/food-salad-raw-carrots-1209503/)

データの前処理をjuliaでやっているのですが、 一冊くらいはちゃんとした前処理の本を読んだほうがいいだろうと思い、ホクソエムにお勤めの方が書かれた 前処理大全という本を読んでみました。

この本は、データ解析の場面において、複数の言語を使い分けることを想定して、 SQL、R、pythonの3つの言語でAwesomeなコードの書き方を教えてくれます。 具体的には、メモリに収まらない大規模なデータならSQL、プロトタイピングにはR、 システムへの組み込みにはpythonという具合です。

余談やあとがきも著者の人柄が偲ばれて、とてもおもしろい良い本でした。

今回は自分用にjulia版[1]のレシピをまとめたいと思います。

お品書き

長くなるのでカードを作りました。

Extraction
2.抽出

Aggregation
3.集約

Join
4.結合

Split
5.分割

Generation
6.生成

Unfold
7. 展開

Numerical
8. 数値型

Category
9. カテゴリ型

Datatime
10. 日時型

Strings
11. 文字型

参考資料

参考資料としては、Julia 1.0 Programming CookBookの著者のBogumił Kamiński先生のブログと Hands-On Design Patterns and Best Practices with Juliaの著者のTom Kwong さんのデータレングリングのvideoとブログを挙げておきます。

Tom Kwong さんのブログには、DataFrames.jlのチートシートがおいてあるので、手元において活用させてもらっています。

ライセンス

データは 前処理大全のサポートページのデータを利用しました。

別の言語で書くのでライセンスの記載が必要かどうか微妙ですが、素材のデータは利用させていただくので、念のためライセンスを転載します。

BSD 3-Clause License

Copyright (c) 2018, Tomomitsu Motohashi All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

つづく