Pandas read_csv未解析日期时间问题求解决方案
解决方法
你的问题核心是列名不匹配加上未明确指定日期格式,导致pandas无法正确解析为datetime类型。以下是两种可行的修改方案:
方案一:修正列名并指定格式读取
直接在read_csv中修正列名(CSV里的列是Arrival_Date和Arrival_Time,不是带空格的名称),同时通过date_format明确告诉pandas日期时间的格式:
import pandas as pd df = pd.read_csv( '/content/SM_AI_Data.csv', index_col=['Study ID'], parse_dates=[['Arrival_Date', 'Arrival_Time']], date_format='%m/%d/%Y %H:%M:%S' ) # 验证列类型 print(df.dtypes)
方案二:先读取再手动合并解析
如果方案一仍有问题,可以先读取所有数据,再手动合并日期和时间列并解析:
import pandas as pd df = pd.read_csv('/content/SM_AI_Data.csv', index_col=['Study ID']) # 合并日期时间字符串并解析为datetime类型 df['Arrival_Datetime'] = pd.to_datetime( df['Arrival_Date'] + ' ' + df['Arrival_Time'], format='%m/%d/%Y %H:%M:%S' ) # 可选:删除原有的日期、时间列 df.drop(['Arrival_Date', 'Arrival_Time'], axis=1, inplace=True) # 验证列类型 print(df.dtypes)
关键说明
- 原代码中使用
['Arrival Date','Arrival Time']作为合并列名,但CSV文件里的列是Arrival_Date和Arrival_Time(下划线分隔),这会导致pandas无法正确识别目标列,合并后的列自然无法被解析为datetime。 - 指定
date_format可以避免pandas自动推断格式时出错,确保解析准确性。
内容的提问来源于stack exchange,提问作者A.T.72
相关产品推荐
相关产品推荐

