パンダ: インデックスを日付/時刻に変換する方法
次の構文を使用して、pandas DataFrame のインデックス列を日時形式に変換できます。
df. index = pd. to_datetime ( df.index )
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas でインデックス列を日時に変換する
店舗での商品の販売に関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' time ': ['4-15-2022 10:15', '5-19-2022 7:14', '8-01-2022 1:14', '6-14-2022 9:45', '10-24-2022 2:58', '12-13-2022 11:03'], ' product ': ['A', 'B', 'C', 'D', 'E', 'F'], ' sales ': [12, 25, 23, 18, 14, 10]}) #set 'time' column as index df = df. set_index (' time ') #view DataFrame print (df) product sales time 4-15-2022 10:15 A 12 5-19-2022 7:14 B 25 8-01-2022 1:14 C 23 6-14-2022 9:45 D 18 10-24-2022 2:58 E 14 12-13-2022 11:03 F 10
ここで、インデックス列に時刻を含む新しい列を作成しようとするとします。
#attempt to create new column that contains hour of index column
df[' hour '] = df. index . hour
AttributeError: 'Index' object has no attribute 'hour'
インデックス列が現在日時形式ではないため、「時刻」属性が含まれていないため、エラーが発生します。
このエラーを回避するには、pandas to_datetime()関数を使用してインデックス列を日時形式に変換します。
#convert index column to datetime format
df. index = pd. to_datetime ( df.index )
#create new column that contains hour of index column
df[' hour '] = df. index . hour
#view updated DataFrame
print (df)
product sales hour
time
2022-04-15 10:15:00 At 12 10
2022-05-19 07:14:00 B 25 7
2022-08-01 01:14:00 C 23 1
2022-06-14 09:45:00 D 18 9
2022-10-24 02:58:00 E 14 2
2022-12-13 11:03:00 F 10 11
to_datetime()関数を使用すると、インデックス列を日時形式に変換できます。
したがって、エラーを受け取ることなく、インデックス列に時間時刻を含むtimeという新しい列を正常に作成できます。
注: pandas to_datetime()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で日付範囲を作成する方法
Pandasでタイムスタンプを日付/時刻に変換する方法
パンダで 2 つの日付の差を計算する方法