Como especificar o formato em pandas.to_datetime


Você pode usar a função pandas.to_datetime() para converter uma coluna de string em uma coluna de data e hora em um DataFrame do pandas.

Ao usar esta função, você pode usar o argumento format para especificar o formato da sua data para evitar erros ao convertê-la de string para data e hora.

Esta função usa a seguinte sintaxe básica:

 df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])

Aqui estão as diretivas mais comuns que você pode fornecer ao argumento de formato :

  • %m : Mês como um número com zero (01, 02,… 12)
  • %d : Dia do mês como um número com zero (01, 02,… 31)
  • %y : Ano com século como número (2020, 2021, 2022, etc.)
  • %H : Hora (relógio de 24 horas) como um número preenchido com zeros (00, 01,… 23)
  • %I : Hora (relógio de 12 horas) como um número preenchido com zeros (01, 02,… 12)
  • %p : AM ou PM
  • %M : Minuto na forma de um número preenchido com zeros (00, 01,… 59)
  • %S : segundo na forma de um número preenchido com zeros (00, 01,… 59)

Para obter uma lista completa de diretrizes, consulte esta página .

O exemplo a seguir mostra como usar o argumento format na função to_datetime() em diferentes cenários.

Exemplo: Especifique o formato em pandas.to_datetime

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre o total de vendas realizadas em diferentes datas em uma loja de varejo:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00',
                            '10142023 15:30:50', '10152023 18:15:00'],
                   ' sales ': [100, 140, 235, 120, 250]})

#view DataFrame
print (df)

                dirty dates
0 10012023 4:15:30 100
1 10042023 7:16:04 140
2 10062023 9:25:00 235
3 10142023 15:30:50 120
4 10152023 18:15:00 250

#view data type of each column in DataFrame
print ( df.dtypes )

date object
dirty int64
dtype:object

Podemos ver que a coluna de data é atualmente uma coluna de string (ou seja, objeto).

Suponha que tentemos usar pandas.to_datetime() para converter esta coluna em datetime:

 #attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])

ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0

Estamos recebendo um erro porque a função pandas.to_datetime() não reconhece o formato de data e hora em que a coluna de data está atualmente.

Também podemos usar o argumento format para especificar o formato da coluna:

 #convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')

#view DataFrame
print (df)

                 dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250

#view updated type of each column
print ( df.dtypes )

date datetime64[ns]
dirty int64
dtype:object

Podemos ver que a coluna de data foi convertida com sucesso em uma coluna de data e hora e não recebemos nenhum erro, pois usamos o argumento format para especificar o formato exato em que a coluna de data estava.

Nota : Você pode encontrar a documentação completa da função to_datetime() do pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como criar um intervalo de datas no Pandas
Como converter carimbo de data/hora em data/hora no Pandas
Como calcular a diferença entre duas datas em pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *