データファイルを読み書きするプログラミング
実際にデータを扱う際には、ファイルやデータベースを読み書きしたり、リアルタイムに計測されたデータを読み込んだりする方法などがあります。
小規模なプログラム開発では、よくCSV形式のファイルを読み込んだり書き出したりすることがあります。CSV形式とは、コンマ(,)などでデータが区切られたテキストファイルです。comma-separated valuesの略で、そのままの意味です。特にあらかじめ決められた複雑な書式がないので、ちょっとしたデータを扱うには便利です。ちなみに、このコンマのようにデータの区切りを表す記号をデリミター(delimiter)と言います。
ファイルの読み込み・書き出しは、ファイルを開いて、データを読み込みまたは書き出し、ファイルを閉じる、という流れになります。一方、いろんなところからデータのファイルを集めてきて読み込む場合、一般的には書き出しよりも多くのプログラミングが必要になります。データを読み込み、どれがなんのデータかといった構造を解析して配列などに代入することをパース(Parse)といいます。この時、全てのデータが適切に入っているとは限りません。センサーから取得したデータの場合は欠損があったり、何らかの原因で異常な値が入っていたりする場合があります。現実世界のデータを使う場合は、必ず欠損や異常値があるものです。
これらの欠損値の補間や、異常値を除外する作業をクレンジングといいます。自動化できるクレンジングもありますが、人手に頼らなければいけない場合もあります。データ分析作業のうち、かなりの時間(90%以上とか)がクレンジングに費やされていると言われています。書き出せるんだから、簡単に読み込めるだろ、というような理屈でプログラマーを責めないであげてください。
一方で、ファイルではなく、データベースを扱うには、データベース専用の言語を使うことになります。SQLという問い合わせ言語などが有名です。この場合、どこに何のデータを入れるか、といったデータ構造を定義します。大規模なデータを扱い、定型化された処理を行う場合は、データベースを使うのが便利です。ただし、とにかく高速にデータ処理をしたい場合は、データベースを使う方がいいのか、ファイルを使うのがいいのかは、意見の分かれるところです。
この記事が気に入ったらサポートをしてみませんか?