Estou tentando somar dados da data selecionada, mês da data selecionada e mês anterior da data selecionada, mas não sei como fazer. Abaixo estão meus dados de exemplo e minha Saída esperada:
Dados de amostra:
import pandas as pd
import numpy as np
df = pd.read_excel('https://github.com/hoatranobita/hoatranobita/raw/refs/heads/main/Check%20data%20(1).xlsx', sheet_name='Data')
df
COA Code USDConversion Amount Base Date 2
0 19010000000 26924582.44 2024-10-01
1 19010000000 38835600.44 2024-10-02
2 19010000000 46794586.57 2024-10-03
3 19010000000 57117346.49 2024-10-06
4 19010000000 69256132.98 2024-10-07
... ... ... ...
65 58000000000 38082130.88 2024-11-12
66 58000000000 38140016.13 2024-11-13
67 58000000000 38160089.27 2024-11-14
68 58000000000 38233974.54 2024-11-17
69 58000000000 38323598.99 2024-11-18
Então, se eu selecionar a data de novembro (por exemplo 2024-11-18
, quero agrupar por data selecionada, mês da data selecionada e mês anterior da data selecionada).
Saída:
COA Code 2024-11-18 October November
0 19010000000 42625047.24 1354513618.61 584813860.97
1 58000000000 38323598.99 820927014.08 456265522.64
A generalização exata da sua pergunta não está totalmente clara, mas supondo que você queira agrupar por Código COA, você pode garantir que tudo seja uma data/hora/períodos, então selecionar as linhas apropriadas com indexação booleana e
between
, finalmente, executar umagroupby.sum
dessas linhas econcat
para as linhas de data originais.Aqui como uma função para maior clareza:
Saída:
NB. você pode substituir
groupby.sum
+unstack
porpivot_table
(df[m].assign(col=p).pivot_table(index='COA Code', columns='col', values='USDConversion Amount', aggfunc='sum')
).