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

如何在Pandas中合并datetime列与object类型的时间列?

刚好处理过类似的时间合并需求,我给你推荐两种靠谱的方法,其中第一种是最优方案,因为它完全基于Pandas的时间类型运算,避免了字符串转换的额外开销,效率更高:

方法1:利用时间增量(Timedelta)合并(首选)

你的Date列已经是datetime类型,Time列是字符串格式的时分数据,我们可以把Time列转换成时间增量(Timedelta),然后直接和Date列相加,一步到位生成目标列:

import pandas as pd

# 假设你的DataFrame变量名为df
df['Datetime'] = df['Date'] + pd.to_timedelta(df['Time'])

# 可选操作:如果不需要保留原Date和Time列,可以删除它们
df = df.drop(columns=['Date', 'Time'])

这个方法的优势在于:

  • 全程是时间类型的数值运算,比字符串拼接快很多,尤其是数据量较大时
  • 生成的Datetime列自动是datetime64[ns]类型,不需要额外转换
  • 结果格式天然就是你需要的YYYY-MM-DD HH:MM样式
方法2:字符串拼接后转datetime(更直观)

如果你觉得时间增量的逻辑不太好理解,也可以用更直观的字符串拼接方式:把Date转成字符串,和Time字符串拼接后,再用pd.to_datetime转换为datetime类型:

df['Datetime'] = pd.to_datetime(df['Date'].astype(str) + ' ' + df['Time'])

# 同样可选删除原列
df = df.drop(columns=['Date', 'Time'])

这种方法逻辑简单易懂,但因为涉及字符串的转换和拼接,在数据量较大时,效率会比方法1低一些。

结果验证

你可以用下面的代码确认结果是否符合要求:

# 查看列类型
print(df['Datetime'].dtype)  # 输出应为 datetime64[ns]
# 查看前几行值
print(df['Datetime'].head())

输出的Datetime列值会是2017-01-01 00:00这类格式,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:18:55