Как преобразовать столбец объекта в datetime для pandas - PullRequest
0 голосов
/ 28 января 2020

У меня есть df столбец с двумя столбцами, df.info() дает следующее:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 200 entries, 0 to 199
Data columns (total 2 columns):
date          200 non-null object
all_events    200 non-null int64
dtypes: int64(1), object(1)
memory usage: 3.2+ KB

Вопрос:

Как преобразовать df['date'] в datetime объект?

Соответствующее исследование:

Что я пробовал:

  • df['date'] = pd.to_datetime(df['date'], infer_datetime_format=True)
  • df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d %H:%M:%S')
  • df['date'] = pd.to_datetime(df['date'].str.strip(), format='%Y-%m-%d %H:%M:%S')

Проблема:

Что бы я ни пытался, я всегда получаю следующее сообщение:

TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

1 Ответ

0 голосов
/ 28 января 2020

Если все записи в вашем столбце date имеют форму, подобную гггг-мм-дд чч: мм: сс , то pd.to_datetime (df ['date']) будет достаточно (эта функция достаточно "умна", чтобы найти правильный формат).

Очевидно, у вас есть некоторые "исключительные" значения с другим форматированием, которые нельзя преобразовать в datetime .

Обратите внимание, что одним из параметров to_datetime является ошибки со значением по умолчанию повышение , что означает «вызвать исключение в случае любой ошибки ".

Поэтому попробуйте, например, tu run pd.to_datetime (df ['date'], errors = 'coerce') , чтобы преобразовать такие" исключительные "значения в NaT .

Затем проверьте, какие выходные строки содержат такое значение, и посмотрите на соответствующие строки в исходном DataFrame (или, например, в файле, из которого вы читаете этот DataFrame). Скорее всего, вы найдете, что не так в своих входных данных и решите, как исправить эти ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...