Pandas合并日期与时间列时用+运算符触发TypeError的解决需求
解决Pandas合并日期列与时间列为Datetime类型的问题
错误原因
出现TypeError是因为entry_date列的数据类型为datetime.date,无法直接与字符串类型的entry_time执行加法拼接操作。
解决方案
提供两种可行的解决方法:
方法1:将日期列转为字符串后拼接
先把entry_date转为字符串格式,再和entry_time拼接,最后转换为Datetime类型:
# 转换日期列为字符串并拼接时间列 df['entry'] = df['entry_date'].astype(str) + " " + df['entry_time'] # 转换为Datetime类型 df['entry'] = pd.to_datetime(df['entry'])
方法2:直接利用Pandas的Datetime构造(更高效)
无需手动拼接字符串,直接通过pd.to_datetime处理组合后的日期时间字符串:
df['entry'] = pd.to_datetime(df['entry_date'].astype(str) + ' ' + df['entry_time'])
如果entry_time已经是datetime.time类型,还可以用datetime.combine实现精准组合:
from datetime import datetime df['entry'] = df.apply(lambda x: datetime.combine(x['entry_date'], x['entry_time']), axis=1)
最终结果
执行上述代码后,DataFrame会生成符合预期的entry列:
num_plate_ID cam entry_date entry_time entry other_columns 0 XYA 2 2022-02-14 23:20:21 2022-02-14 23:20:21 ... 1 JDS 2 2022-02-12 23:20:21 2022-02-12 23:20:21 ... 2 OAP 0 2022-02-05 14:30:21 2022-02-05 14:30:21 ... 3 ASI 1 2022-04-07 15:30:21 2022-04-07 15:30:21 ...
内容的提问来源于stack exchange,提问作者Carola
相关产品推荐
相关产品推荐

