2017-07-19 8 views
2

私はデータフレーム内で、別の列の特定のカテゴリに代わって値を計算する列を作成しようとしています。Python Pandas Forループ

言い換えれば、種類の異なる材質の列Xがありますが、それぞれの種類の価格があります。さて、それぞれのグループに基づいて、その特定のタイプの材料の中央値を示すMaterialsコラムと一緒に、列を追加したいと思います。

柱は次のようになります。 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

ループを行う必要はありません。

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 
使用 groupbytransformをしてみましょう