2017-07-19 95 views
2

我想在我的數據框中創建一個列,它將代表另一列中的某些類別計算值。Python熊貓For循環

可以說,我有一個列X,它有不同類型的材料,並且每種類型都有一個價格。現在,我想在每個組的「材質」列的基礎上添加一列,指出該特定類型材質的中值。

列將像材料|價格| Median_Prices

幫助我生成列中位價。

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 

回答

2

無需循環來做到這一點。讓用groupbytransform

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

輸出:

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