以下に示すように、trainというデータフレームにstring(object)型のI_DATE列があります。
I_DATE
28-03-2012 2:15:00 PM
28-03-2012 2:17:28 PM
28-03-2012 2:50:50 PM
I_DATEを文字列からデータ時間形式に変換し、入力文字列の形式を指定する方法。私はこれに対するいくつかの答えを見ましたが、AM/PM形式ではありません。
また、パンダの日付の範囲に基づいて行をフィルタリングする方法は?
to_datetime
を使用します。パーサーがそれを処理するのに十分な形式の文字列である必要はありません。
In [51]:
pd.to_datetime(df['I_DATE'])
Out[51]:
0 2012-03-28 14:15:00
1 2012-03-28 14:17:28
2 2012-03-28 14:50:50
Name: I_DATE, dtype: datetime64[ns]
日付/曜日/時刻コンポーネントにアクセスするには、 dt
アクセサーを使用します。
In [54]:
df['I_DATE'].dt.date
Out[54]:
0 2012-03-28
1 2012-03-28
2 2012-03-28
dtype: object
In [56]:
df['I_DATE'].dt.time
Out[56]:
0 14:15:00
1 14:17:28
2 14:50:50
dtype: object
例として、文字列を使用してフィルタリングできます。
In [59]:
df = pd.DataFrame({'date':pd.date_range(start = dt.datetime(2015,1,1), end = dt.datetime.now())})
df[(df['date'] > '2015-02-04') & (df['date'] < '2015-02-10')]
Out[59]:
date
35 2015-02-05
36 2015-02-06
37 2015-02-07
38 2015-02-08
39 2015-02-09