pandas dataframe中Date列无法格式化 日期时间合并问题求解
问题根因
你对Time列单独执行pd.to_datetime()转换时,由于该列仅包含时间信息、无对应的日期字段,pandas会默认补全转换当天的系统日期,这就是自动追加当前日期的原因。
解决方案
不需要单独对Time列做datetime转换,直接将日期、时间字符串拼接后再统一转换即可,修改后代码如下:
df = pd.read_csv('dataframe.csv') df['Avg_value'] = (df['Open'] + df['High'] + df['Low'] + df['Close'])/4 # 仅将Date列转为字符串格式的日期,Time列保持原有字符串格式 df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y-%m-%d') # 拼接后转为完整的datetime类型 df['Datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])
格式验证
执行以下代码即可输出你需要的格式:
# 取第一条数据为例 print(f"Date: {df.loc[0, 'Datetime']}")
输出示例:
Date: 2016-01-04 10:00:00
字段类型排查方法
如果要确认Date列的数据类型,直接执行print(df['Date'].dtype)即可查看,不需要依赖verbose=True参数返回信息。
内容的提问来源于stack exchange,提问作者jd_h2003
相关产品推荐
相关产品推荐

