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)