Как преобразовать строку в дату и время, игнорируя информацию о времени? - PullRequest
0 голосов
/ 27 февраля 2019

В Python3 и pandas у меня есть фрейм данных со столбцом строк, представляющих даты - столбец «DataFim»

df_lotacoes.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 52725 entries, 0 to 52724
Data columns (total 5 columns):
DataFim            48854 non-null object
DataInicio         52725 non-null object
IdUA               52725 non-null object
NomeFuncionario    52725 non-null object
NomeUA             52725 non-null object
dtypes: object(5)
memory usage: 1.0+ MB

print(df_lotacoes['DataFim'])

DataFim
0   2018-11-05T00:00:00-02:00
1   2008-08-28T00:00:00-03:00
2   2002-08-08T00:00:00-03:00
3   2007-03-14T00:00:00-03:00
4   2005-05-06T00:00:00-03:00

Я пытался преобразовать в дату, но он остается как объект

df_lotacoes['DataFim'] = pd.to_datetime(df_lotacoes['DataFim'])

DataFim
0   2018-11-05 00:00:00-02:00
1   2008-08-28 00:00:00-03:00
2   2002-08-08 00:00:00-03:00
3   2007-03-14 00:00:00-03:00
4   2005-05-06 00:00:00-03:00

DataFim            48854 non-null object

Мне просто нужна информация о году, месяце и дне.Другие данные о времени, которые я хочу игнорировать

Пожалуйста, кто-нибудь знает, как я могу преобразовать этот формат?

1 Ответ

0 голосов
/ 27 февраля 2019

Извлечение части даты с использованием str.extract и преобразование в datetime,

df['DataFim'] = pd.to_datetime(df['DataFim'].str.extract('(.*)T')[0], format = '%Y-%m-%d')

    DataFim
0   2018-11-05
1   2008-08-28
2   2002-08-08
3   2007-03-14
4   2005-05-06

Вариант 2: Вы также можете использовать str.split

df['DataFim'] = pd.to_datetime(df['DataFim'].str.split('T').str[0], format = '%Y-%m-%d')

Получив удовольствие от регулярных выражений,

df['DataFim'] = pd.to_datetime(df['DataFim'].str.replace('T.*', '', regex = True), format = '%Y-%m-%d')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...