Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';未转换的数据仍然存在';将T0000对象转换为日期时间时出错_Python_Pandas_Datetime - Fatal编程技术网

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')