pandasのtimestampで特定の時間のみ取得する
pandasでcsvなどを扱う際,csvに含まれるtimestampから,特定の時間のデータのみ取得したいことがよくある(多分).
text,timestamp
hogehoge,2020-05-01 12:32:14
huga,2020-04-23 21:32:23
hoge,2020-05-23 14:10:23
foo,2020-04-21 12:32:25
こんなデータから,全ての日付の12時台のデータのみ取得したい!という感じのものだ.
早速方法
>> import pandas as pd
>> data = pd.read_csv('./sample.csv')
>> data
text timestamp
0 hogehoge 2020-05-01 12:32:14
1 huga 2020-04-23 21:32:23
2 hoge 2020-05-23 14:10:23
3 foo 2020-04-21 12:32:25
# この段階ではtimestampはdate型ではない
>> data.types
text object
timestamp object
dtype: object
# timestampをdatetime型に変更する
>> data['timestamp'] = pd.to_datetime(data['timestamp'])
>> data.dtypes
text object
timestamp datetime64[ns]
dtype: object
# 12時台のデータのみ取得する
>> data[data['timestamp'].dt.hour == 12]
text timestamp
0 hogehoge 2020-05-01 12:32:14
3 foo 2020-04-21 12:32:25
同じように書けば,同じ日付のデータのみ取得する.といったことも可能になる.