ぷそさんのプログラミング研究所

【Python時系列解析】pandas|時系列データの操作方法

目次

データの読み込み

モジュールのimport

時系列データの扱いにはpandasnumpyといったモジュールが便利です。

import pandas as pd
import numpy as np
import pandas_datareader.data as web

データ収集

まずは、データの収集です。csvファイルなどでダウンロードすると思います。

今回は、東京電力のHPから得られる需要データを例にしたいと思います!

# データの読み込み
file1 = "juyo-2021.csv"
df_demand =  pd.read_csv(file1, encoding="shift_jis", skiprows=2)
df_demand.head()

東京電力のデータは、日本語の列名が使われているので、encoding=”shift_jis”を設定しています。

また、いらない行もあるので、skiprows=2で削除しています。

データの変換

時系列データに変換

このままだと2022年だけ取り出したい!といった処理ができないため、時系列データに変換します。

まず、DATETIMEが分かれていると扱いづらいので統合します。

df_demand["DATE_TIME"] = df_demand["DATE"] +" "+ df_demand["TIME"]

このままでは、各時刻が文字列になっているので、datetimeという型に変更します。

さらに、インデックスを時刻にすることで、抽出ができるようにします。

df_demand["DATE_TIME"] = pd.to_datetime(df_demand["DATE_TIME"])
df_demand = df_demand.set_index("DATE_TIME")

これで時系列データに変換できたので、元々あったDATE、TIMEは要らないので削除します。

df_demand = df_demand.drop(["DATE","TIME"],axis=1)

出力はこんな感じになっているはずです。

df_demand.head()

データの操作方法

指定の年や月の抽出

指定した年や月での抽出には、中括弧に指定する年月を入れます。

# 2021年のみ抽出
df_demand["2021"]
# 2021年9月のみ抽出
df_demand["2021-9"]

指定の期間の抽出

期間で抽出する際には始端と終端を指定します。

# 2021年3月から5月の抽出
df_demand["2021-3":"2021-5"]

指定の曜日の抽出

曜日は月曜が0、火曜が1、、、日曜が6のように番号が振られています。

# 月曜日の抽出
df_demand[df_demand.index.weekday == 0]
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

このブログでは,PythonやLaTeXの使い方などを紹介しています!
仕事でも趣味でもプログラミングをしています。
ブログは2022年8月にスタートしました。
【経歴】東京大学大学院修了→大手IT企業勤務

コメント

コメントする

目次