Tenho um dataframe com os dados abaixo.
Data e hora | Marcação | Qtd. |
---|---|---|
2025-01-01 13:00 | 1 | 270 |
2025-01-03 13:22 | 1 | 32 |
2025-01-10 12:33 | 2 | 44 |
2025-01-22 10:04 | 2 | 120 |
2025-01-29 09:30 | 3 | 182 |
2025-02-02 15:05 | 1 | 216 |
A ser alcançado : 2 novas colunas, a primeira com a soma cumulativa de Qtd até a Data/Hora em cada linha quando a Tag não for igual a 2, a segunda com a soma cumulativa de Qtd até a Data/Hora em cada linha quando a Tag for igual a 2. Abaixo está o resultado que estou procurando.
Data e hora | Marcação | Qtd. | RBQ | Resposta |
---|---|---|---|---|
2025-01-01 13:00 | 1 | 270 | 270 | 0 |
2025-01-03 13:22 | 1 | 32 | 302 | 0 |
2025-01-10 12:33 | 2 | 44 | 302 | 44 |
2025-01-22 10:04 | 2 | 120 | 302 | 164 |
2025-01-29 09:30 | 3 | 182 | 484 | 164 |
2025-02-02 15:05 | 1 | 216 | 600 | 164 |
Estou procurando um método, mas parece que não estou conseguindo. Posso obter ajuda para conseguir?
Obrigado,
Basta filtrar por
Tag
coluna ecumsum()
:Você pode usar uma condição e a máscara de métodos e onde criar ambas as colunas
Outra solução é usar a mesma condição e dinamizar o dataframe com base nisso.
Resultado final:
Editar: Aqui está uma versão ligeiramente modificada que leva em consideração a coluna DateTime. Modifiquei o primeiro valor na coluna datetime como exemplo.
Para a segunda solução, você terá que usar merge em vez de join.
Resultado final: