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中两个日期之间的差异

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注