2017-07-19 5 views
2

Ich versuche, eine Spalte zu erstellen, in meinem Datenframe, die Werte im Namen bestimmter Kategorien in einer anderen Spalte berechnet.Python Pandas For Schleife

Lets sagen, ich habe eine Spalte X, die Materialien verschiedener Typen hat, und es gibt einen Preis für jeden der Typen. Nun möchte ich eine Spalte basierend auf jeder Gruppe zusammen mit der Materialspalte hinzufügen, die das Median dieser bestimmten Materialart angibt.

Spalten wären wie Materialien | Preise | Median_Prices

Helfen Sie mir bei der Erzeugung von Spalte Median Preise.

Material,Prices,Median _Prices 
a,12,12.5 
a,13,12.5 
b,34,34 
b,565,34 
b,8,34 
c,87,66 
c,66,66 
c,7,66 

Antwort

2

Keine Notwendigkeit für Schleifen, dies zu tun. Lassen Verwendung groupby und transform:

df['Median_Prices_Calc'] = df.groupby('Material')['Prices'].transform('median') 

Ausgang:

Material Prices Median_Prices Median_Prices_Calc 
0  a  12   12.5    12.5 
1  a  13   12.5    12.5 
2  b  34   34.0    34.0 
3  b  565   34.0    34.0 
4  b  8   34.0    34.0 
5  c  87   66.0    66.0 
6  c  66   66.0    66.0 
7  c  7   66.0    66.0