Pandas DatetimeIndexと1つの列を含むDataFrameがありますMSE Loss
インデックスの形式は次のとおりです。
DatetimeIndex(['2015-07-16 07:14:41', '2015-07-16 07:14:48',
'2015-07-16 07:14:54', '2015-07-16 07:15:01',
'2015-07-16 07:15:07', '2015-07-16 07:15:14',...]
それは数日を含みます。
実際の時間間隔を特に知らなくても、特定の日のすべての行(すべての時間)を選択したいと思います。例:Between 2015-07-16 07:00:00
および2015-07-16 23:00:00
私はここに概説されたアプローチを試しました: ここ
だが df[date_from:date_to]
出力:
KeyError: Timestamp('2015-07-16 07:00:00')
したがって、正確なインデックスが必要です。さらに、date
columnはありません。日付のあるインデックスのみ。
日付を入力するだけで丸一日を選択する最良の方法は何ですか2015-07-16
そして、どうすれば特定の日の特定の時間範囲を選択できますか?
オプション1:
サンプルdf:
df
a
2015-07-16 07:14:41 12
2015-07-16 07:14:48 34
2015-07-16 07:14:54 65
2015-07-16 07:15:01 34
2015-07-16 07:15:07 23
2015-07-16 07:15:14 1
.loc
なしでこれを試しているようです(これがないと動作しません)。
df.loc['2015-07-16 07:00:00':'2015-07-16 23:00:00']
a
2015-07-16 07:14:41 12
2015-07-16 07:14:48 34
2015-07-16 07:14:54 65
2015-07-16 07:15:01 34
2015-07-16 07:15:07 23
2015-07-16 07:15:14 1
オプション2:
インデックスにブールインデックスを使用できます。
df[(df.index.get_level_values(0) >= '2015-07-16 07:00:00') & (df.index.get_level_values(0) <= '2015-07-16 23:00:00')]
truncate
を使用できます。
begin = pd.Timestamp('2015-07-16 07:00:00')
end = pd.Timestamp('2015-07-16 23:00:00')
df.truncate(before=begin, after=end)