2017-07-19 2 views
2

J'essaye de créer une colonne, dans ma base de données, qui va calculer des valeurs pour le compte de certaines catégories dans une autre colonne. Disons, j'ai une colonne X, qui a des matériaux de différents types, et il y a un prix de chacun des types. Maintenant, je veux ajouter une colonne, basée sur chaque groupe avec la colonne Matériaux, indiquant la médiane de ce type particulier de matériaux.Python Pandas For loop

Les colonnes seraient comme Matériaux | Median_Prices

Aidez-moi à générer les prix médians des colonnes.

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 

Répondre

2

Pas besoin de boucles pour cela. Laissez utilisation groupby et transform:

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

Sortie:

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