我有一個數據幀如下替換值:由平均
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']
但我不知道如何更換值,也許使用地圖?
我有一個數據幀如下替換值:由平均
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']
但我不知道如何更換值,也許使用地圖?
你是正確─map
可以用來做像這樣:
df['Col1'] = df['Col1'].map(df.groupby('Col1')['Price'].mean())
df
Col1 Price
1 45 50
2 100 100
3 45 40
df.assign(Col1=df.Col1.map(df.groupby('Col1').mean().squeeze()))
輸出:
Col1 Price
1 45 50
2 100 100
3 45 40
如果直接想要的結果,您可以使用transform
df['Col1']=df.groupby(['Col1'])['Price'].transform('mean')
Col1 Price
0 45 50
1 100 100
2 45 40
我喜歡你的swer! :) +1 –
@ScottBoston 1000種方法來爲他們說的皮膚貓! ;) –
工作謝謝! – hdatas