You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame中多列合并为Pandas datetime格式?

合并多列为Pandas Datetime格式的方法

当然没问题!有几种简洁高效的方式可以把你的Date、Month、Year和Time列合并成Pandas的datetime64格式,下面给你详细演示:

方法1:直接传入列组合(推荐)

从Pandas 0.18版本开始,pd.to_datetime()支持直接传入包含年、月、日、时间信息的列组成的DataFrame,Pandas会自动识别并合并成datetime格式,这是最省心的方式:

import pandas as pd

# 先构造你的示例DataFrame
data = {
    'ProcessID1': [248, 436, 500],
    'UserID': ['Tony', 'Jeff', 'Greg'],
    'Date': [29, 28, 4],
    'Month': [4, 4, 5],
    'Year': [2017, 2017, 2017],
    'Time': ['23:30:56', '20:02:19', '11:48:29']
}
df = pd.DataFrame(data)

# 合并列生成Datetime列
df['Datetime'] = pd.to_datetime(df[['Year', 'Month', 'Date', 'Time']])

运行后,df['Datetime']的类型就是datetime64[ns],你可以通过print(df['Datetime'].dtype)验证。

方法2:手动拼接字符串后转换

如果你使用的是较旧版本的Pandas,或者需要更灵活的格式控制,可以先把各列拼接成标准的日期时间字符串,再转换为datetime:

# 把年、月、日转成字符串,确保月/日是两位数(比如4→04),再拼接时间
df['Datetime'] = pd.to_datetime(
    df['Year'].astype(str) + '-' + 
    df['Month'].astype(str).str.zfill(2) + '-' + 
    df['Date'].astype(str).str.zfill(2) + ' ' + 
    df['Time']
)

这里的str.zfill(2)是为了保证月份和日期始终是两位数,避免出现2017-4-29这种不标准的格式导致解析失败。

验证结果

处理完成后,你的DataFrame会新增一列Datetime,内容如下:

0   2017-04-29 23:30:56
1   2017-04-28 20:02:19
2   2017-05-04 11:48:29
Name: Datetime, dtype: datetime64[ns]

内容的提问来源于stack exchange,提问作者Jithesh Erancheri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:57:26