Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz concret_hp #1286 üzenetére

    Szerintem akkor is a groupby a megoldás... csak nyilván nem magában.

    Béta verziós megoldás. Íme az "eredeti" táblázat:

    >>> df.head()

    Datum Ugyfel Termek Ar
    0 dátum1 ügyfél1 termék1 ár1
    1 dátum1 ügyfél1 termék2 ár2
    2 dátum1 ügyfél1 termék3 ár3
    3 dátum2 ügyfél1 termék1 ár1
    4 dátum2 ügyfél1 termék2 ár2

    A groupby objektum szétbontja egyedi csoportokra a dátum és az ügyfél neve alapján:

    gr = df.groupby(['Ugyfel', 'Datum'])

    Ezután már az apply metódussal tudunk az egyes részeken tetszőleges függvényeket futtatni (lehet akár sum is), majd az eredményt összefűzni. A kissé favágó megoldás az összeadásra:

    def func(group, cucc1, cucc2):
    x = group[group.Termek == cucc1].Ar.squeeze()
    y = group[group.Termek == cucc2].Ar.squeeze()
    return x+y

    gr.apply(func, 'termék1', 'termék2')

    Az eredmény:

    Ugyfel Datum
    ügyfél1 dátum1 ár1ár2
    dátum2 ár1ár2
    ügyfél2 dátum1 ár1ár2
    ügyfél6 dátum2 ár1ár2
    dtype: object

    A func tartalmán még lehet finomítani... ;]

Új hozzászólás Aktív témák