Python ';未转换的数据仍然存在';将T0000对象转换为日期时间时出错
我的数据集看起来有点像这样:Python ';未转换的数据仍然存在';将T0000对象转换为日期时间时出错,python,pandas,datetime,Python,Pandas,Datetime,我的数据集看起来有点像这样: RecordDate Serial RecordHour Value 1 2015-03-18 304 T0000 0.0 2 2015-03-18 304 T0030 0.0 3 2015-03-18 304 T0100 0.0 我的目标是将RecordDate和RecordHour合并到一列中。我已将RecordDate转换为datetime以启用此合并,但在转换
RecordDate Serial RecordHour Value
1 2015-03-18 304 T0000 0.0
2 2015-03-18 304 T0030 0.0
3 2015-03-18 304 T0100 0.0
我的目标是将RecordDate和RecordHour合并到一列中。我已将RecordDate转换为datetime以启用此合并,但在转换RecordHour(当前为对象)时遇到问题
我尝试了几种选择,包括:
df['RecordHour'] = pd.to_datetime(df['RecordHour'], format='T%H%M')
及
但是,它们都返回相同的错误:
ValueError:未转换的数据仍然存在:0
我已经在RecordHour列中检查了我的数据集是否有任何意外的零,是否可能“T%H%M”不是T0000(等)的正确格式
谢谢你的帮助 在转换
RecordDate
之前,您可以使用以下方法同时转换这两种格式:
df['Record_DateTime'] = pd.to_datetime(df['RecordDate']+df['RecordHour'], format='%Y-%m-%dT%H%M')
>>> df
RecordDate Serial RecordHour Value Record_DateTime
1 2015-03-18 304 T0000 0.0 2015-03-18 00:00:00
2 2015-03-18 304 T0030 0.0 2015-03-18 00:30:00
3 2015-03-18 304 T0100 0.0 2015-03-18 01:00:00
如果某些行存在问题,可以使用:
df['Record_DateTime'] = pd.to_datetime(df['RecordDate']+df['RecordHour'], format='%Y-%m-%dT%H%M',errors='coerce')
在这种情况下,如果存在问题条目,它将返回NaT
编辑:我想可能是您的某些条目的字符太多,无法用T%H%m
进行解释。在这种情况下,您可以尝试将其切断:
df['RecordHour'] = pd.to_datetime(df['RecordHour'].str[:5], format='T%H%M')
df['RecordHour'] = pd.to_datetime(df['RecordHour'].str[:5], format='T%H%M')