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