Data Analysis

Extraindo Eficientemente Ano e Mês de Colunas Pandas Datetime

Spread the love

Extrair o ano e o mês de uma coluna datetime no Pandas é uma tarefa comum. Este artigo explora três métodos eficientes, comparando seus pontos fortes e fracos para ajudá-lo a escolher a melhor abordagem para suas necessidades.

Sumário

Usando o acessador .dt

O acessador .dt fornece uma maneira simples e eficiente de extrair componentes de data e hora. É frequentemente o método preferido devido à sua legibilidade e concisão.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

df['year'] = df['date'].dt.year
df['month'] = df['date'].dt.month

print(df)

Este código terá como saída:


         date  year  month
0 2024-03-15  2024      3
1 2023-11-20  2023     11
2 2024-05-10  2024      5

Utilizando o método strftime()

O método strftime() oferece maior flexibilidade, permitindo que você personalize o formato de saída. Isso é particularmente útil quando você precisa de representações de string específicas do ano e do mês para relatórios ou outros fins.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

df['year'] = df['date'].dt.strftime('%Y')
df['month'] = df['date'].dt.strftime('%m') # Use '%b' para nome abreviado do mês, '%B' para nome completo

print(df)

Isso produzirá:


         date  year month
0 2024-03-15  2024   03
1 2023-11-20  2023   11
2 2024-05-10  2024   05

Lembre-se de consultar a documentação strftime() do Python para uma lista completa de códigos de formato.

Acesso Direto com DatetimeIndex

Se sua coluna ‘date’ já for um DatetimeIndex, você pode acessar diretamente os atributos ano e mês. Embora menos comum, isso pode ser eficiente se seus dados já estiverem neste formato.


import pandas as pd

data = {'date': pd.to_datetime(['2024-03-15', '2023-11-20', '2024-05-10'])}
df = pd.DataFrame(data)

date_index = pd.DatetimeIndex(df['date'])
df['year'] = date_index.year
df['month'] = date_index.month

print(df)

Isso produz a mesma saída do primeiro exemplo. No entanto, este método geralmente é menos preferido, a menos que você já esteja trabalhando com um objeto DatetimeIndex.

Conclusão: O acessador .dt oferece a abordagem mais concisa e eficiente para a maioria dos cenários. strftime() fornece maior controle de formatação, enquanto o acesso direto ao DatetimeIndex é útil em situações específicas. Escolha o método que melhor se alinha às suas necessidades e estilo de codificação. Sempre verifique se sua coluna ‘date’ é do tipo datetime usando pd.to_datetime() se necessário.

Deixe um comentário

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