Help us understand the problem. What is going on with this article?

pandasのindexはdatetimeにすると便利

はじめに

時系列を含むデータをpandasで処理する場合、indexにdatetime型を指定すると便利だったので、
備忘録的にまとめます。

使用データ

ネット上で拾ってきた2010年から2019年までの時系列データを使用します。

df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date")
df.head()
date A B
2010-04-01 93.74 1859.96
2010-04-02 94.61 1859.96
2010-04-05 94.28 1836.82
2010-04-06 93.64 1839.07
2010-04-07 93.21 1800.12

ここが便利

1. 日付を指定することで、データを選択できる。

indexにdatetime型の方式で日付を指定すると、指定範囲のデータを取得できる。

年の指定

df["2011"].head(2)
date A B
2011-01-03 81.67 1663.29
2011-01-04 82.06 1659.39

月の指定

df["2011-3"].head(2)
date A B
2011-03-01 81.92 1424.76
2011-03-02 81.84 1374.43

2.範囲指定もできる。

スライスによる範囲指定もできる

df["2012-04":"2012-05"]
date A B
2012-04-02 81.64 1654.39
〜〜 〜〜
2012-05-31 78.36 1471.49

3.特定の月(日)だけ抜き出す

8月だけ抜き出すというような処理も可能です。

df[df.index.month == 8]
date A B
2010-08-02 86.53 1509.63
2010-08-03 85.88 1527.62
〜〜 〜〜
2018-08-30 110.98 2840.16
2018-08-31 111.04 2840.16

4.年月日ごとに計算を行う。

# 年なら'y'、日なら'D'を指定してください。
# もちろんmeanを他の計算メソッドに当てても計算できます。
df.resample('M').mean()
date A B
2010-04-30 93.455909 1784.934091
2010-05-31 91.914762 1684.609048
〜〜 〜〜

参考サイト様

https://note.nkmk.me/python-pandas-rolling/
https://towardsdatascience.com/basic-time-series-manipulation-with-pandas-4432afee64ea

sakabe
犬好きです。 最近kaggleに励んだり励まなかったりしてます。 ※投稿する記事、コメントは個人の見解であり、所属組織を代表するものではありません。
headwaters
常に新しい技術を取り込み、ありとあらゆる技術を駆使してビジネスを仕掛けるエンジニア集団です。技術力をベースに世の中の課題を解決しつつ、クライアントの強みを生かしたスタートアップインテグレーターとして共に事業も展開しています。「AI企画開発​」「マルチAIプラットフォーム(SyncLect)」「ロボットアプリ企画開発​」「React Native/Monaca/PWAアプリ開発」...etc他多数
http://www.headwaters.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした