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
同じように書けば,同じ日付のデータのみ取得する.といったことも可能になる.