1
resposta

Can only use .dt accessor with datetimelike values

oláaa como posso resolver esse problema?

import pandas as pd

# Importando o relatório de vendas
vendas = pd.read_csv("https://raw.githubusercontent.com/afonsosr2/dataviz-graficos/master/dados/relatorio_vendas.csv")

df_vendas_ano = vendas.copy()
df_vendas_ano = df_vendas_ano[['data_pedido','vendas']]

# Gerando uma coluna que represente apenas os anos puxando-os da coluna data pedido
df_vendas_ano["ano"] = df_vendas_ano.data_pedido.dt.year
df_vendas_ano.drop(labels = "data_pedido", axis = 1, inplace = True)

df_vendas_ano = df_vendas_ano.groupby(['ano']).aggregate('sun')

df_vendas_ano
1 resposta

Olá Felipe, tudo bem com você?

O erro Can only use .dt accessor with datetimelike values está acontecendo porque a coluna data_pedido não está no formato de data (datetime), e sim, como uma string (texto). Para usar o .dt, a coluna precisa estar no formato correto.

Podemos corrigir isso convertendo a coluna data_pedido para o formato datetime antes de extrair o ano, através do método pd.to_datetime(). Exemplo:

df_vendas_ano['data_pedido'] = pd.to_datetime(df_vendas_ano['data_pedido'])

Código completo:

import pandas as pd

vendas = pd.read_csv("https://raw.githubusercontent.com/afonsosr2/dataviz-graficos/master/dados/relatorio_vendas.csv")

df_vendas_ano = vendas.copy()
df_vendas_ano = df_vendas_ano[['data_pedido','vendas']]

df_vendas_ano['data_pedido'] = pd.to_datetime(df_vendas_ano['data_pedido'])
df_vendas_ano["ano"] = df_vendas_ano.data_pedido.dt.year
df_vendas_ano.drop(labels = "data_pedido", axis = 1, inplace = True)

df_vendas_ano = df_vendas_ano.groupby(['ano']).aggregate('sum')

df_vendas_ano

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!