Wie erhält man das Aggregat der Pandas gruppenweise und sum

  1. Kumulative Summe mit groupby
  2. pivot(), um die Daten in einer schönen Tabelle neu anzuordnen
  3. Anwenden von Funktion auf groupby in Pandas
  4. agg(), um die Gesamtsumme der Spalte zu erhalten

Wir werden demonstrieren, wie man das Aggregat der Pandas “gruppenweise” und “summa summarum” erhält. Wir werden uns auch die pivot()-Funktionalität ansehen, um die Daten in einer schönen Tabelle anzuordnen, und wie wir unsere benutzerdefinierte Funktion definieren und sie auf den DataFrame anwenden können. Wir werden auch die Gesamtsumme erhalten, indem wir agg() verwenden.

Kumulative Summe mit groupby

Wir können die kumulative Summe erhalten, indem wir die “gruppenweise” Methode verwenden. Betrachten Sie den folgenden DataFrame mit Datum, Fruchtname und Verkauf an diesem Datum:

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})

Wenn wir die kumulative Summe des Verkaufs pro Frucht und für jedes Datum berechnen wollen, können wir das tun:

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})
print (df.groupby(by=['Fruit','Date']).sum().groupby(level=[0]).cumsum())

Ausgabe:

Fruit  Date         Sale
Apple  08/09/2018    34
       10/09/2018    46
Banana 08/09/2018    22
       10/09/2018    49

pivot(), um die Daten in einer schönen Tabelle neu anzuordnen

pivot() Methode könnte Zeilen- und Spaltenattribute der Tabelle setzen. Lassen Sie uns den obigen Code ändern und die pivot() Methode anwenden, um die Daten in einer schönen Tabelle neu anzuordnen:

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})    
print (df.groupby(['Fruit','Date'],as_index = False).sum().pivot('Fruit','Date').fillna(0))

Ausgabe:

             Sale           
Date   08/09/2018 10/09/2018
Fruit                       
Apple          34         12
Banana         22         27

Anwenden von Funktion auf groupby in Pandas

Wir werden eine einfache Methode erstellen, um die Anzahl der Werte in Series oder 1d-Arrays zu ermitteln und Gruppenweise verwenden, um die Gesamtzahl der einzelnen Werte zu ermitteln:

from pandas import *
d = {"series": Series(['1','2','1','1','4','4','5'])}
df = DataFrame(d)
def get_count(values):
    return len(values)
grouped_count = df.groupby("series").series.agg(get_count)
print(grouped_count)

Nachdem wir den Code ausgeführt haben, erhalten wir die folgende Ausgabe, die das Vorkommen jedes Wertes in der Serie angibt.

Ausgabe:

series
1    3
2    1
4    2
5    1
Name: series, dtype: int64

agg(), um die Gesamtsumme der Spalte zu erhalten

Wir können agg() benutzen, um eine Summenoperation auf eine Spalte anzuwenden. Betrachten Sie den folgenden Code:

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})
print(df.groupby(['Fruit'])['Sale'].agg('sum'))

Ausgabe:

Fruit
Apple     46
Banana    49
Name: Sale, dtype: int64

Verwandter Artikel - Pandas DataFrame

  • Wie man eine Zeile basierend auf einem Spaltenwert in Pandas DataFrame löscht
  • Wie man ein Python-Dictionary in Pandas DataFrame konvertiert