Pandas gewichtete Durchschnitt

Pandas gewichtete Durchschnitt

Der gewichtete Durchschnitt ist der Durchschnitt der Daten, die die spezifischen Zahlen identifizieren, die wichtiger sind als die anderen Zahlen im DataFrame. Wir werden alle möglichen Möglichkeiten implementieren, wie der durch Pandas gewichtete Durchschnitt mit Hilfe mehrerer Beispiele berechnet werden kann.

Formel

(values_column*wights_column).sum ()/wights_column.Summe()

Hier ist Values_Column die numerische Spalte im PANDAS -Datenfeuer, die die Werte speichert, und das Gewichts -Column ist die numerische Spalte, die das Gewicht jedes Werts speichert.

Methode 1: Return Gewichtter Durchschnitt

Verwenden wir die benutzerdefinierte Funktion, die den gewichteten Durchschnitt des Pandas -Datenfreames berechnet. Wir werden die Funktion Sum () verwenden, um die Summe in der folgenden Berechnung zu berechnen:

SUM (DataFrame_Object [Weight_data]*DataFrame_Object [value_data])/dataframe_object [wight_data].Summe()

Hier ist Gewicht_Data die Spalte im Datenrahmen, der Gewichte für Werte in der Spalte Value_Data enthält.

Beispiel

In diesem Beispiel haben wir einen Datenrahmen mit dem Namen "Berechnungen" mit 2 Spalten des Ganzzahltyps. Jetzt erstellen wir eine benutzerdefinierte Funktion, 'Weighted_avg_calculation', um den gewichteten Durchschnitt zu berechnen und die Funktion mit diesen beiden Spalten aufzurufen, indem sie sie als Argumente übergeben.

Pandas importieren
# Erstellen Sie den DataFrame mit 2 Spalten und 5 Zeilen
Berechnungen = Pandas.Datenrahmen.von_dict ('count': [7,8,9,0,4],
'Menge': [2,3,4,5,2]
)
# Zeigen Sie den DataFrame - Berechnungen an
drucken (Berechnungen)
# Benutzerdefinierte Funktion, die den gewichteten Durchschnitt berechnet
DEF Gewichts_avg_Calculation (Berechnungen, value_data, Gewicht_Data):
Rückgabesumme (Berechnungen [Weight_data] * Berechnungen [value_data])/Berechnungen [Weight_data].Summe()
drucken()
# Rufen Sie die Funktion auf, indem Sie den DataFrame, 'Quantity' als Value_Data und 'Count' als Gewicht_Data übergeben
print (Gewicht_avg_calculation (Berechnungen, 'Menge', 'Count'))

Ausgang

Zählmenge
0 7 2
1 8 3
2 9 4
3 0 5
4 4 2
2.9285714285714284

Erläuterung

Die benutzerdefinierte Funktion lautet also:

Es wird den gewichteten Durchschnitt zurückgeben.

Der gewichtete Durchschnitt des oben genannten Datenrahmens beträgt also 2.92.

Methode 2: Return gewichteter Durchschnitt in Gruppen

Jetzt werden wir die Gruppe GroupBy () verwenden, um die Zeilen zu gruppieren und den gewichteten Durchschnitt in jeder Gruppe zurückzugeben. Die Methode apply () wird zusammen mit dem GroupBy () verwendet, der den gewichteten Durchschnitt und die Säulen als Parameter nimmt.

DataFrame_Object.GroupBy ('Grouping_Column').anwenden (Gewicht_avg_calculation, 'value_data', 'Weight_data'))

Hier wurden die Zeilen basierend auf Werten im 'grupping_column' gruppiert. Die Weighted_avg_calculation ist eine benutzerdefinierte Funktion, die den Gewichtungen berechnet. Die Weight_Data ist die Spalte im Datenrahmen, die Gewichte für Werte in der Spalte Value_Data enthält.

Beispiel

In diesem Beispiel haben wir einen Datenrahmen mit dem Namen "Berechnungen" mit 3 Spalten. Jetzt erstellen wir eine benutzerdefinierte Funktion, 'Weighted_avg_calculation', um den gewichteten Durchschnitt zu berechnen und die Funktion mit den beiden Spalten aufzurufen, indem sie sie als Argumente übergeben. Wir werden die Zeilen basierend auf der Spalte "Element" gruppieren und den gewichteten Durchschnitt in jeder Gruppe zurückgeben.

Pandas importieren
# Erstellen Sie den DataFrame mit 3 Spalten und 5 Zeilen
Berechnungen = Pandas.Datenrahmen.von_dict ('count': [12,34,56,10,15],
'Menge': [100.200.345.670,50],
'Item': ['Plastik', 'Eisen', 'Eisen', 'Stahl', 'Plastik']
)
# Zeigen Sie den DataFrame - Berechnungen an
drucken (Berechnungen)
# Benutzerdefinierte Funktion, die den gewichteten Durchschnitt berechnet
DEF Gewichts_avg_Calculation (Berechnungen, value_data, Gewicht_Data):
Rückgabesumme (Berechnungen [Weight_data] * Berechnungen [value_data])/Berechnungen [Weight_data].Summe()
drucken()
drucken (Berechnungen.GroupBy ('Artikel').anwenden (Gewicht_avg_calculation, 'Menge', 'Count'))

Ausgang

Zählen Sie die Menge
0 12 100 Kunststoff
1 34 200 Eisen
2 56 345 Eisen
3 10 670 Stahl
4 15 50 Plastik
Artikel
Eisen 290.222222
Plastik 72.222222
Stahl 670.000000
DTYPE: Float64

Erläuterung

Die benutzerdefinierte Funktion lautet also:

Es wird den gewichteten Durchschnitt zurückgeben.

Es gibt drei Gruppen im Berechnungsdatenrahmen.

  1. Der gewichtete Durchschnitt für die "Eisen" -Gruppe beträgt 290.22
  2. Der gewichtete Durchschnitt für die "Plastik" -Gruppe beträgt 72.22
  3. Der gewichtete Durchschnitt für die "Stahl" -Gruppe beträgt 670.00

Methode 3: Return Gewichtter Durchschnitt mit Numpy

Das Numpy -Modul unterstützt die durchschnittliche () -Funktion, in der wir die Werte und Gewichte an sie übergeben und den gewichteten Durchschnitt des Pandas -Datenframe erhalten können.

  1. Im ersten Parameter müssen wir die Spalte der Werte übergeben.
  2. Im zweiten Parameter werden wir Gewicht die Spalte "Gewichtsdaten" zuweisen.

Numpy.Durchschnitt (DataFrame_Object ['value_data'], Gewicht = dataframe_object ['wight_data']))

Beispiel

In diesem Beispiel haben wir einen Datenrahmen mit dem Namen "Berechnungen" mit 2 Spalten. Wir werden Numpy direkt verwenden.Durchschnitt (), um den gewichteten Durchschnitt zu berechnen.

Pandas importieren
Numpy importieren
# Erstellen Sie den DataFrame mit 2 Spalten und 5 Zeilen
Berechnungen = Pandas.Datenrahmen.von_dict ('count': [12,34,56,10,15],
'Menge': [100.200.345.670,50]
)
# Zeigen Sie den DataFrame - Berechnungen an
drucken (Berechnungen)
drucken()
Druck (Numpy.Durchschnitt (Berechnungen ['Menge'], Gewichte = Berechnungen ['zählen']))

Ausgang:

Zählmenge
0 12 100
1 34 200
2 56 345
3 10 670
4 15 50
273.7795275590551
DTYPE: Float64

Erläuterung

Hier ist die Menge der Menge der Wert und die Anzahl wird das Gewicht sein.

Der gewichtete Durchschnitt beträgt 273.77.

Abschluss

Der durch Pandas gewichtete Durchschnitt ist eine wertvolle und technische Funktion. Wir haben die benutzerdefinierte Funktion des durch den Pandas gewichteten Durchschnitts und des Numpy Pandas gewichteten Durchschnitts erfüllt. Der Durchschnitt ist etwas, das wir in fast allem berechnen müssen, selbst die Budgets kleiner Lebensmittel. Wenn Sie also über die Millionen von Daten sprechen, ist die gewichtete durchschnittliche Pandas -Funktion für alle Benutzer, die an den spezifischen Datendurchschnittsberechnungen in ihren Feldern arbeiten.