Hoe een gewogen gemiddelde in panda's te berekenen
U kunt de volgende functie gebruiken om een gewogen gemiddelde in Panda’s te berekenen:
def w_avg(df, values, weights): d = df[values] w = df[weights] return (d*w). sum () / w. sum ()
De volgende voorbeelden laten zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld 1: Gewogen gemiddelde onder panda’s
De volgende code laat zien hoe u de functie gewogen gemiddelde kunt gebruiken om een gewogen gemiddelde voor een bepaalde gegevensset te berekenen, waarbij u ‚prijs‘ als waarden en ‚bedrag‘ als gewicht gebruikt:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
' price ': [8, 5, 6, 7, 12, 14],
' amount ': [1, 3, 2, 2, 5, 4]})
#view DataFrame
df
sales_rep price amount
0 to 8 1
1 to 5 3
2 to 6 2
3 B 7 2
4 B 12 5
5 B 14 4
#find weighted average of price
w_avg(df, ' price ', ' amount ')
9.705882352941176
Het gewogen gemiddelde van “prijs” blijkt 9.706 te zijn.
Voorbeeld 2: Groupby en gewogen gemiddelde bij Panda’s
De volgende code laat zien hoe u de functie gewogen gemiddelde kunt gebruiken om het gewogen gemiddelde van prijzen te berekenen, gegroepeerd op verkoper:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' sales_rep ': ['A', 'A', 'A', 'B', 'B', 'B'],
' price ': [8, 5, 6, 7, 12, 14],
' amount ': [1, 3, 2, 2, 5, 4]})
#find weighted average of price, grouped by sales rep
df. groupby (' sales_rep '). apply (w_avg, ' price ', ' amount ')
sales_rep
A 5.833333
B 11.818182
dtype:float64
We kunnen het volgende zien:
- Het gewogen gemiddelde van de “prijs” voor verkoper A is 5.833 .
- Het gewogen gemiddelde van de “Prijs van verkoopvertegenwoordiger B” is 11.818 .
Aanvullende bronnen
Hoe twee kolommen in Panda’s te vergelijken
Hoe de som van kolommen in Panda’s te berekenen
Hoe het gemiddelde van kolommen in Panda’s te berekenen