全5020文字

2. データの読み込みと中身の確認

 次にCSVファイルをPythonで読み込んで、中身のデータを確認していきます。分析するのは前回の記事でも使ったコンビニエンスストアの売り上げと関連情報をまとめたデータ「sales_data.csv」です。

今回の分析に利用するデータの中身。コンビニエンスストアの売り上げ、敷地面積、開店時からの経過年数、近くの競合店舗数、駐車場の有無、店舗の種類などをまとめた
今回の分析に利用するデータの中身。コンビニエンスストアの売り上げ、敷地面積、開店時からの経過年数、近くの競合店舗数、駐車場の有無、店舗の種類などをまとめた
[画像のクリックで拡大表示]

 ファイルを読み込む際は、まずファイル名とそのファイルが入っているフォルダー名を指定して変数に代入します。下の図の「In〔2〕」の2行目を見てください。ここでは、「MyPython」フォルダー内の「sales_data.csv」ファイルを変数「frame」に代入しています。

 続く3行目では、「pd.read_csv()」関数で先ほどの「frame」に代入したファイルを読み込んでいます。「encoding」は読み込み時の文字コードを指します。「low_memory = False」は容量が大きいファイルを読み込む際、メモリーを効率的に使うためのオプションです。実行結果は「mydata」という変数に代入します。

 4行目では、「pd.DataFrame()」関数を使って、読み込んだファイル(変数は「mydata」)のデータを扱いやすいよう、データフレーム型に変換します。データフレーム型は表の列の名称、行の名称と値をセットで保存するデータ構造の一種です。変換した結果は「df」という変数に代入します。

 ここまでの作業でファイルの読み込み、データの変換が済んだら、中身を確認してみましょう。

PythonでCSVファイルを読み込んでデータフレーム型に変換。さらに「print()」関数で内容を確認した
PythonでCSVファイルを読み込んでデータフレーム型に変換。さらに「print()」関数で内容を確認した
[画像のクリックで拡大表示]

 7行目の「print()」関数は、文字列を画面に表示します。「head()」は先頭から任意の行数のデータを出力するための関数です。ここでは「print(df.head(1))」と記述することで、データの先頭の行の値を表示しています。関数の実行結果の表示欄(ソースコードの下の白い部分)の最初の2行が上記の関数の実行結果です。例えば「sales」の1行目の値は「192088888」、「area」は「48」だと分かります。

 10行目の「shape()」はデータの行数と列数を出力する関数です。実行結果の3行目の結果を見ると、今回のデータは「29行」「7列」あることが分かります。13行目の「columns()」は列名を出力する関数です。実行した結果、実行結果の4行目に列名の一覧が表示されています。

3. 要約統計量の確認

 データが無事に読み込めたら、次に平均値や標準偏差などの要約統計量を見てみましょう。「df.describe()」関数を実行すれば、要約統計量をまとめて出力できます。

 特に最大値(下の図では「Out〔3〕」の左端の列にある「max」)と最小値(同「min」)を見て、外れ値がないかどうか確認しておきましょう。今回の例では周辺の競合店舗数を表す変数(「Out〔3〕」の最上段、右から2番目の列名)「conflict」について、最小値が「1」、最大値が「6」となっています。日ごろのビジネスの常識に照らし合わせて考えて、「通常、競合店舗数が6店舗もあるのはありえない」場合などは「6」を外れ値として扱います。

Pythonの「df.describe()」関数で要約統計量を一覧表示したところ
Pythonの「df.describe()」関数で要約統計量を一覧表示したところ
[画像のクリックで拡大表示]