csvファイルからデータを読み取り、加工・分析・可視化をやりたい。 まずはデータの読み取りから。
前提
下記のような表を作成。獲得点数.csv
というファイル名で保存
これに対し次の操作を行いたい。
- ファイルからデータの読み込み。
- 3行目までは説明なので、4行目から読み込む。
- 経過日数は月日に直す。
- 最終的にグラフにしたい。
順番にやっていく。
データの読み込み
pandas を使うので、まずはPandasをインポート。
>>>import pandas as pd
csvファイルの読み込みには、read_csv( )
を使う。( )
にはファイル名を指定し、読み込んだデータを data
に代入する。
確認のためprint(data)
で読み込んだ内容を確認する。
その結果、下記となる。
>>> data = pd.read_csv("獲得点数.csv") >>> print(data) #このファイルには4名の、日ごとの獲得点数を記録。 Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 0 #経過日数は、2020年4月1日を基準とした経過日数を示す。 NaN NaN NaN NaN 1 NaN NaN NaN NaN NaN 2 経過日数 田中 山田 鈴木 佐藤 3 0 6 71 NaN 6 4 1 74 27 NaN 60 5 2 58 50 NaN 21 6 3 64 1 55 59 7 4 38 88 71 28 8 5 29 10 60 84
とりあえず読み込みには成功。しかし1~3行目はコメントなので、ここは飛ばして読み込みたい。
ファイルの途中から読み込み
ファイルのヘッダーを飛ばして読み込む場合は、read_csv( )
で、ファイル名の後にheader = ??
を指定すればよい。
ここでは3行飛ばすので、header = 3
を指定する。
>>> data = pd.read_csv("獲得点数.csv",header=3) >>> print(data) 経過日数 田中 山田 鈴木 佐藤 0 0 6 71 NaN 6 1 1 74 27 NaN 60 2 2 58 50 NaN 21 3 3 64 1 55.0 59 4 4 38 88 71.0 28 5 5 29 10 60.0 84
無事、ヘッダー部分を省略し読み込むことができた。しかし今度は、print(data)
で表示した際の、項目名とデータの表示がずれている。
分析自体には問題はないが、見た目が気持ち悪いので修正する。
テーブル表示幅の修正
表示のずれは日本語を使った際に生じる。これを回避するため、Pandasで下記のオプションを設定。
>>>pd.set_option('display.unicode.east_asian_width', True)
東アジアの文字列にする設定のようだ。結果は下記となる。
>>> pd.set_option('display.unicode.east_asian_width', True) >>> print(data) 経過日数 田中 山田 鈴木 佐藤 0 0 6 71 NaN 6 1 1 74 27 NaN 60 2 2 58 50 NaN 21 3 3 64 1 55.0 59 4 4 38 88 71.0 28 5 5 29 10 60.0 84
いい感じに表示できた。
このデータを使って加工や可視化をやってみる。