2017-06-19 8 views
2

平均で値を置き換えます。私は次のようにデータフレームを持って

  Col1  Price 
1  Plastic  50 
2  Metal  100 
3  Plastic  40 

私は価格で彼らの手段でのCol1の値を交換したいと思います、だから私は得る:

  Col1  Price 
1   45   50 
2  100  100 
3   45   40 

私はしました既に行った:

df.groupby('Col1').mean()['Price'] 

しかし、私は値を置き換える方法、多分マップを使用してわからないのですか?

答えて

3

あなたはmapがそうのようにこれを行うために使用することができcorrect-、次のとおりです。

df['Col1'] = df['Col1'].map(df.groupby('Col1')['Price'].mean()) 
df 
    Col1 Price 
1 45  50 
2 100 100 
3 45  40 
+0

私はあなたの元気! :) +1 –

+0

@ScottBoston彼らが言うように1000の方法は、猫を皮膚に! ;) –

+0

ありがとうございました! – hdatas

3
df.assign(Col1=df.Col1.map(df.groupby('Col1').mean().squeeze())) 

出力:

Col1 Price 
1 45  50 
2 100 100 
3 45  40 
2

あなたが直接結果をしたい場合は、あなたがtransform

を使用することができます
df['Col1']=df.groupby(['Col1'])['Price'].transform('mean') 


    Col1 Price 
0 45  50 
1 100 100 
2 45  40 
関連する問題