如何在Pandas中将object类型的日期与时间列合并为datetime列
解决方法
假设你的DataFrame名为df,日期列和时间列分别为date和time,可以按以下步骤合并并转换为datetime类型:
方法1:先拼接字符串再转换
- 合并日期和时间列为完整的字符串:
df['datetime_str'] = df['date'] + ' ' + df['time']
- 将字符串列转换为datetime类型,指定匹配的格式(对应你需要的
dd-mm-yyyy HH:MM:SS):
df['datetime'] = pd.to_datetime(df['datetime_str'], format='%d-%m-%Y %H:%M:%S')
- (可选)如果不需要中间的字符串列,可以删除:
df.drop('datetime_str', axis=1, inplace=True)
方法2:直接转换(无需中间列)
可以一步完成拼接和转换,更简洁:
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'], format='%d-%m-%Y %H:%M:%S')
关键说明
format参数必须严格匹配你的日期时间字符串格式:%d代表两位日期,%m代表两位月份,%Y代表四位年份,%H代表24小时制的小时,%M代表分钟,%S代表秒。如果你的原始日期格式是mm-dd-yyyy,则需要把格式改为%m-%d-%Y %H:%M:%S。- 转换完成后,执行
df.info()可以看到datetime列的数据类型变为datetime64[ns]。
内容的提问来源于stack exchange,提问作者Akansha
相关产品推荐
相关产品推荐

