Панды to_datetime конвертировать 18:00 в 18 - PullRequest
1 голос
/ 11 октября 2019

есть хороший способ преобразовать данные серии, представленные как 1PM или 11AM, в 13 и 11 соответственно с to_datetime или аналогичными (кроме re)

data:

series
1PM
11AM
2PM
6PM
6AM

желаемый вывод:

series
13
11
14
18
6

pd.to_datetime(df['series']) дает следующую ошибку:

OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1-01-01 11:00:00

1 Ответ

2 голосов
/ 11 октября 2019

Вы можете указать формат, который вы хотите использовать, в качестве формата %I%p:

pd.to_datetime(df['series']<b>, format='%I%p'</b>)<b>.dt.hour</b>

.dt.hour [pandas-doc] таким образом получит час для этой отметки времени. Это дает нам:

>>> df = pd.DataFrame({'series': ['1PM', '11AM', '2PM', '6PM', '6AM']})
>>> pd.to_datetime(df['series'], format='%I%p').dt.hour
0    13
1    11
2    14
3    18
4     6
Name: series, dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...