Python: Grupowanie po dacie z sumą – redukcja liczby wierszy

12-mar-2022

Problem:

Dane pochodzące z wielu plików, zostały zaimportowane do Pandas Data Frame w następującej postaci:

Chcielibyśmy uniknąć wielokrotnie powtarzanej daty, wartości numeryczne znajdujące się w col1, col2 i col3 powinny się nasumować, dając taki efekt:

Rozwiązanie:

Wydaje się, że funkcjonalnością stworzoną do takiego celu jest grupowanie. Wystarczy na rzecz obiektu data frame wywołać metodę groupby wskazując, że grupowanie ma się odbyć ze względu na datę, a dla kolumn numerycznych chcemy zobaczyć sumę. Oto propozycja rozwiązania:

 

import pandas as pd
data = ({
 'date' :['2000-01','2000-02','2000-01','2000-02','2000-01','2000-02'],
 'col1' :[22000,25000,0,0,0,0],
 'col2' :[0,0,23000,24000,0,0],
 'col3' :[0,0,0,0,26000,25000]
 })
df = pd.DataFrame(data, columns=['date','col1','col2','col3'])
print(df)

df2 = df.groupby('date').sum()
print(df2)

 

Komentarze są wyłączone

Autor: Rafał Kraik