0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pd.date_rangeより特定日時のインデックスを取得する方法

Last updated at Posted at 2021-11-17

追記
pandas.get_loc()pandas.searchsorted()というメソッドがあることを教えていただきました.コメント欄をご覧ください.


暗算でも良いですが,パソコンに考えてもらった方が安心ですよね.
numpy.whereを使います. numpyは不要です.コメント欄をご覧ください.

import pandas as pd
import numpy as np

# 時系列の作成
times = pd.date_range('2015-04-01 00', '2015-04-30 18', freq='6H')

# 特定日時
t = '2015-04-13 12'

# 特定日時のインデックスの取得
i = np.where(times==t)[0][0]

最初の[0]はタプルのアンパック,次の[0]はnumpy.ndarrayのアンパック,最終的にnumpy.int64を返します.

numpy.whereはTrueのインデックスを返します.一方,pandas.whereはFalseとなるインデックスの値をNaNに置換します.pandasだけでできると良いなと思いましたが,自分の知る限りnumpy使うのが楽でした.

参考
pandasで条件に応じて値を代入(where, mask) - note.nkmk.me
numpy.where – インデックスの検索 - TauStation

0
1
2

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?