Как извлечь час из серии [duplicate]

В моем случае я использовал mb_split, который использует регулярное выражение. Поэтому мне также пришлось вручную убедиться, что кодировка регулярного выражения была utf-8, выполнив mb_regex_encoding('UTF-8');

. В качестве побочной заметки я также обнаружил, запустив mb_internal_encoding(), что внутренняя кодировка не была utf-8 , и я изменил это, выполнив mb_internal_encoding("UTF-8");.

161
задан Andy Hayden 16 June 2013 в 16:40
поделиться

3 ответа

Самый простой способ - использовать to_datetime :

df['col'] = pd.to_datetime(df['col'])

Он также предлагает аргумент dayfirst для европейских времен (но будьте осторожны , это isn ' t strict ).

Здесь он находится в действии:

In [11]: pd.to_datetime(pd.Series(['05/23/2005']))
Out[11]:
0   2005-05-23 00:00:00
dtype: datetime64[ns]

Вы можете передать конкретный формат :

In [12]: pd.to_datetime(pd.Series(['05/23/2005']), format="%m/%d/%Y")
Out[12]:
0   2005-05-23
dtype: datetime64[ns]
270
ответ дан Andy Hayden 4 September 2018 в 10:21
поделиться

Вы можете использовать следующее, если хотите указать сложные форматы:

df['date_col'] =  pd.to_datetime(df['date_col'], format='%d/%m/%Y')
4
ответ дан Ekhtiar 4 September 2018 в 10:21
поделиться

Если ваш столбец даты является строкой формата '2017-01-01', вы можете использовать pandas astype для преобразования его в datetime.

df['date'] = df['date'].astype('datetime64[ns]')

или использовать datetime64 [D], если вы хотите, чтобы точность дня, а не наносекунды

print(type(df_launath['date'].iloc[0]))

дает

<class 'pandas._libs.tslib.Timestamp'> то же самое, что и при использовании pandas.to_datetime

Вы можете попробовать его с другими форматами, тогда «% Y-% m-% d», но по крайней мере это работает.

15
ответ дан sigurdb 4 September 2018 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: