Pandas: como combinar colunas de data e hora


Você pode usar a seguinte sintaxe para combinar as colunas de data e hora de um DataFrame do pandas em uma única coluna:

 df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time '])

Observe que esta sintaxe assume que as colunas de data e hora são strings atuais.

Se ambas as colunas ainda não forem strings, você poderá usar astype(str) para convertê-las em strings:

 df[' datetime '] = pd. to_datetime (df[' date ']. astype ( str ) + ' ' + df[' time ']. astype ( str ))

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: combinar colunas de data e hora em Pandas

Digamos que temos o seguinte DataFrame do pandas que contém uma coluna de data e uma coluna de hora:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10-1-2023', '10-4-2023', '10-6-2023', '10-6-2023',
                            '10-14-2023', '10-15-2023', '10-29-2023'],
                   ' time ': ['4:15:00', '7:16:04', '9:25:00', '10:13:45',
                            '15:30:00', '18:15:00', '23:15:00']})

#view DataFrame
print (df)

         date time
0 10-1-2023 4:15:00
1 10-4-2023 7:16:04
2 10-6-2023 9:25:00
3 10-6-2023 10:13:45
4 10-14-2023 15:30:00
5 10-15-2023 18:15:00
6 10-29-2023 23:15:00

Digamos que queremos criar uma nova coluna chamada datetime que combine os valores das colunas de data e hora .

Podemos usar a seguinte sintaxe para fazer isso:

 #create new datetime column
df[' datetime '] = pd. to_datetime (df[' date '] + ' ' + df[' time '])

#view updated DataFrame
print (df)

         datetime datetime
0 10-1-2023 4:15:00 2023-10-01 04:15:00
1 10-4-2023 7:16:04 2023-10-04 07:16:04
2 10-6-2023 9:25:00 2023-10-06 09:25:00
3 10-6-2023 10:13:45 2023-10-06 10:13:45
4 10-14-2023 15:30:00 2023-10-14 15:30:00

Observe que a nova coluna datetime combinou com sucesso os valores das colunas de data e hora em uma única coluna.

Também podemos usar a função dtypes para verificar os tipos de dados de cada coluna no DataFrame:

 #view data type of each column
df. dtypes

date object
time object
datetime datetime64[ns]
dtype:object

A partir do resultado, podemos ver que as colunas de data e hora são objetos (ou seja, strings) e a nova coluna de data e hora é uma data e hora.

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 *