Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Após a tradução do Mês, aparece NaN

Boa tarde equipe, estou fazendo meu primeiro projeto de análise exploratória e me deparei com a seguinte situação.

meu dataframe estou chamando de dados2.

dados2['Mês'] = dados2['Data da fatura'].dt.month_name()

dados2['Mês'].unique()

array(['January', 'February', 'March', 'April', 'May', 'June', 'July',
       'August', 'September', 'October', 'November', 'December'],
      dtype=object)

Pois bem, visando deixar em português os meses do ano, fiz assim:

# Criar o dicionário, para traduzir os meses do ano.

meses = {'Janurary':'JAN', 'February':'FEV', 'March':'MAR',
        'May':'MAI', 'June':'JUN', 'July':'JUL', 'August':'AGO',
        'September':'SET','October':'OUT','November':'NOV',
        'December':'DEZ'}

Em seguida, como o professor instruiu na aula, fui fazer o mapeamento no meu DF, dados2, assim:

# Fazendo a substituição no DF com .map

dados2['Mês'] = dados2['Mês'].map(meses)

dados2.head()

Ai retornou o DF assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Poderiam me ajudar, por gentileza! ?

Obrigado.

2 respostas
solução!

Opa, tudo bem Eduardo? Em dados2.head() está aparecendo somente a data de janeiro, e no dicionário você colocou Janurary em vez de January. Além disso, está faltando o mês de abril. Creio que se você corrigir isso, e rodar tudo novamente, vai dar boa.

Tome cuidado caso você rode novamente a mesma célula com o map , pois os valores se tornarão nulos, já que você fez uma primeira substituição.

Um abraço!

import pandas as pd

dados2 = pd.DataFrame({'Data da Fatura': pd.date_range(start='2021-01-01', end='2021-12-01', freq='MS')})

dados2['Mês'] = dados2['Data da Fatura'].dt.month_name()

# Criar o dicionário, para traduzir os meses do ano.
meses = {'January':'JAN', 'February':'FEV', 'March':'MAR', 'April':'ABR',
        'May':'MAI', 'June':'JUN', 'July':'JUL', 'August':'AGO',
        'September':'SET','October':'OUT','November':'NOV',
        'December':'DEZ'}

# Fazendo a substituição no DF com .map
dados2['Mês'] = dados2['Mês'].map(meses)
print(dados2.head(12))

# Caso a mesma célula seja novamente rodada
dados2['Mês'] = dados2['Mês'].map(meses)
dados2.head()

Boa tarde!

Resolveu e muito!

Sim, rodei novamente e apareceu o NaN, novamente, mas conseguir ajustar.

Obrigado.