Pandas:如何组合日期和时间列
您可以使用以下语法将 pandas DataFrame 的日期和时间列合并为单个列:
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 中的日期和时间列
假设我们有以下 pandas DataFrame,其中包含日期列和时间列:
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 中创建日期范围
如何在 Pandas 中将时间戳转换为日期/时间
如何计算pandas中两个日期之间的差异