1
resposta

[Dúvida] Problema para criar tabela agrupada

na aula, o professor disse que é mais indicado usar a função:

df_vendas_reg['ano'] = df_vendas_reg.data_pedido.dt.year

que isso era para facilitar a agregação posterior e que a função groupby complicaria o código.

Contudo, tenho um df aqui em que preciso agrupar os dados em safras (só tenho datas). Eu tenho usado esse script para criar df separados para cada safra:

s = pd.to_datetime(df['data'])
assert str(s.dtype) == 'datetime64[ns]'
df.index = s
safra_22_23 = (df['2022-04-01':'2023-03-31'])

periodo = safra_22_23.data
print(f'A safra de 2022-23 vai de { periodo.min()} até { periodo.max() }.')

mas isso me atrapalha na hora de montar tabelas agrupadas.

alguma ideia de como posso resolver isso?

1 resposta

Olá, Murilo!

Entendo que você está com dificuldades para criar tabelas agrupadas utilizando datas. Se eu entendi corretamente, você está tentando agrupar seus dados por safra, que é um período específico do ano, certo?

Você já chegou a ver o método resample do pandas?

Lá você consegue reajustar seus dados para o período desejado, dependendo da coluna com datas estando no índice. Acho que assim, você consegue realizar. Eu uso nesse método na Aula 03 em um de nossos dados.

Uma outra alternativa seria criar uma nova coluna em seu DataFrame que represente a safra correspondente a cada data. Você pode fazer isso utilizando a função apply() do pandas em combinação com uma função personalizada que retorne a safra correspondente a cada data.

Espero que essa sugestão possa te ajudar a resolver o problema. Lembre-se de adaptar o código ao seu caso específico.

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