7
12

More than 5 years have passed since last update.

[pandas] read_csv のオプションだけで、時系列データとして扱いやすいデータフレームを作成する

Last updated at Posted at 2018-10-28

この記事では、pandas の read_csv のオプションだけで、時系列データとして扱いやすいデータフレームを作成する方法を示します。Jupyter Notebook 上で作業していることを前提にします。

結論

気象庁が公開している csv を、以下のオプション指定で読み込みます。

df = pd.read_csv('data.csv',
            encoding='SHIFT-JIS',                      # 文字コードを指定
            skiprows=6,                                # 読み飛ばす先頭行数を指定
            usecols=[0, 1, 4, 7],                      # どの列を読み込むかを指定
            names=['date', 'average', 'high', 'low'],  # カラム名を設定
            parse_dates=['date'],                      # datetime で読み込むカラムを指定
            index_col=['date'])                        # インデックスにするカラムを指定

すると、以下のようにインデックスが DatetimeIndex となったデータフレームが作られます。

データフレーム

以下は解説です。

データソースの CSV

気象庁が公開している気象データを使用します。
https://www.data.jma.go.jp/gmd/risk/obsdl/index.php

地点を東京、項目を日平均気温、日最高気温、日最低気温、期間は過去 5 年分としてダウンロードします。

気象庁ダウンロードページ

オプション指定なして read_csv を使用した場合

まず、パッケージをインポートします。

import pandas as pd

文字コードの指定だけした状態で read_csv で CSV ファイルを読み込みます。

df = pd.read_csv('data.csv', encoding='SHIFT-JIS')

すると以下のようなデータフレームが作られました。ここから加工することもできますが、read_csv 時に綺麗な状態で取り込めるといいですよね。

データフレーム

オプションを指定して read_csv を使用する

上記の結論に書いた内容と重複しますが、read_csv のオプションを活用して、時系列データを扱いやすくするようにデータフレームを読み込みます。

df = pd.read_csv('data.csv',
            encoding='SHIFT-JIS',                      # 文字コードを指定
            skiprows=6,                                # 読み飛ばす先頭行数を指定
            usecols=[0, 1, 4, 7],                      # どの列を読み込むかを指定
            names=['date', 'average', 'high', 'low'],  # カラム名を設定
            parse_dates=['date'],                      # datetime で読み込むカラムを指定
            index_col=['date'])                        # インデックスにするカラムを指定

すると、次のようなデータフレームが作られます。

データフレーム

この状態だとインデックスが DatetimeIndex になっていますので、日時を指定した操作がしやすいです。例として、2017 年の日平均気温の折れ線グラフを描画する場合は、以下のように書きます。

%matplotlib inline
df.loc['2017'].plot(y='average', figsize=(15, 5))

折れ線グラフ

参考

pandas: read_csv
気象庁: 過去の気象データ・ダウンロード

7
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
12