1
resposta

[Sugestão] Melhoría no código

Não sei se esse modo de pegar o range de datas é a melhor maneira. Achei duas outras alternativas.

# primeiro caso:
df_sem_total = df.drop('Total', axis=1)
anos = df_sem_total.select_dtypes(include='int64').columns.tolist()

# segundo caso: nesse caso como usa regex, ele pega apenas as colunas que são formadas por números:
anos = df.filter(regex='\d+').columns.tolist()

Não sei se estou otimizando com antecedência mas achei legal compartilhar.

1 resposta

Olá Gabriel, tudo bem?

Obrigado por compartilhar essas alternativas! Ambas são eficientes para obter o range de datas.

Na primeira, você remove a coluna 'Total' e seleciona as colunas do tipo int64, útil porque as colunas de anos são inteiros. Essa abordagem é direta e funciona se todas as colunas de anos forem int64. Na segunda, você usa uma expressão regular para filtrar colunas com números, independente do tipo de dado. Isso garante que você pegue todas as colunas de anos, mesmo que o tipo de dado mude.

Ambas as alternativas são ótimas e podem ser mais flexíveis do que a abordagem original, especialmente se os dados mudarem.

Espero ter esclarecido e bons estudos!