パンダ: 日付と時刻の列を結合する方法
次の構文を使用して、pandas DataFrame の日付と時刻の列を 1 つの列に結合できます。
df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time '])
この構文は、日付列と時刻列が両方とも現在の文字列であることを前提としていることに注意してください。
両方の列がまだ文字列でない場合は、 astype(str)を使用して列を文字列に変換できます。
df[' datetime '] = pd. to_datetime (df[' date ']. astype ( str ) + ' ' + df[' time ']. astype ( str ))
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas で日付と時刻の列を結合する
日付列と時刻列を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' date ': ['10-1-2023', '10-4-2023', '10-6-2023', '10-6-2023', '10-14-2023', '10-15-2023', '10-29-2023'], ' time ': ['4:15:00', '7:16:04', '9:25:00', '10:13:45', '15:30:00', '18:15:00', '23:15:00']}) #view DataFrame print (df) date time 0 10-1-2023 4:15:00 1 10-4-2023 7:16:04 2 10-6-2023 9:25:00 3 10-6-2023 10:13:45 4 10-14-2023 15:30:00 5 10-15-2023 18:15:00 6 10-29-2023 23:15:00
日付列と時刻列の値を結合するdatetimeという新しい列を作成するとします。
これを行うには、次の構文を使用できます。
#create new datetime column df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time ']) #view updated DataFrame print (df) datetime datetime 0 10-1-2023 4:15:00 2023-10-01 04:15:00 1 10-4-2023 7:16:04 2023-10-04 07:16:04 2 10-6-2023 9:25:00 2023-10-06 09:25:00 3 10-6-2023 10:13:45 2023-10-06 10:13:45 4 10-14-2023 15:30:00 2023-10-14 15:30:00
新しい日時列は、日付列と時刻列の値を単一の列に正常に結合していることに注意してください。
dtypes関数を使用して、DataFrame の各列のデータ型を確認することもできます。
#view data type of each column
df. dtypes
date object
time object
datetime datetime64[ns]
dtype:object
結果から、日付と時刻の列は両方ともオブジェクト (つまり、文字列) であり、新しい日付時刻列は日付時刻であることがわかります。
注: pandas to_datetime()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas で日付範囲を作成する方法
Pandasでタイムスタンプを日付/時刻に変換する方法
パンダで 2 つの日付の差を計算する方法