Ошибка «Не преобразованные данные» при преобразовании объекта T0000 в datetime - PullRequest
0 голосов
/ 19 октября 2018

Мой набор данных выглядит примерно так:

    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 (в настоящее время - Object).

Я пробовал несколько альтернатив, включая:

df['RecordHour'] = pd.to_datetime(df['RecordHour'], format='T%H%M')

и

df['RecordHour'].apply(lambda x: datetime.strptime(x, 'T%H%M'))

Однако все возвращают одну и ту же ошибку:

ValueError: unconverted data remains: 0

Я проверил свой набор данных на наличие неожиданных нулей в столбце RecordHour, возможно ли, что 'T% H% M 'не подходит для формата T0000 (и т. Д.)?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете конвертировать оба сразу до вы конвертируете 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...