如何用Pandas将特定格式的Date和Time列合并为Date_Time列
实现DataFrame日期时间格式转换需求
原始数据
Time Date 213919 220806 220905 220806 225351 220806 4101 220806 12037 220806
需求说明
- Time列为
hhmmss格式,但部分数据长度不足6位,需从末尾读取并补前导0至6位,再转换为hh:mm:ss格式(如4101→00:41:01,12037→01:20:37) - Date列为
yymmdd格式,需转换为dd/mm/yyyy格式 - 新增
Date_Time列,合并处理后的日期与时间,格式为dd/mm/yyyy hh:mm:ss
解决方案
使用Pandas可以简洁实现该需求,核心思路是先统一时间字符串长度,再结合日期字符串解析为datetime对象,最后格式化输出:
import pandas as pd # 初始化示例DataFrame(实际使用时替换为你的原始df) df = pd.DataFrame({ 'Time': [213919, 220905, 225351, 4101, 12037], 'Date': [220806, 220806, 220806, 220806, 220806] }) # 生成Date_Time列 df['Date_Time'] = pd.to_datetime( # 将Date转为字符串,Time转为字符串后补前导0到6位,拼接成yymmddhhmmss格式 df['Date'].astype(str) + df['Time'].astype(str).str.zfill(6), format='%y%m%d%H%M%S' ).dt.strftime('%d/%m/%Y %H:%M:%S') # 查看处理结果 print(df)
处理后结果
Time Date Date_Time 0 213919 220806 06/08/2022 21:39:19 1 220905 220806 06/08/2022 22:09:05 2 225351 220806 06/08/2022 22:53:51 3 4101 220806 06/08/2022 00:41:01 4 12037 220806 06/08/2022 01:20:37
内容的提问来源于stack exchange,提问作者serdar_bay
相关产品推荐
相关产品推荐

