5
我也忒以下大熊貓據幀:計算加權平均大熊貓據幀
data_df = pd.DataFrame({'ind':['la','p','la','la','p','g','g','la'],
'dist':[10.,5.,7.,8.,7.,2.,5.,3.],
'diff':[0.54,3.2,8.6,7.2,2.1,1.,3.5,4.5],
'cas':[1.,2.,3.,4.,5.,6.,7.,8.]})
是
cas diff dist ind
0 1 0.54 10 la
1 2 3.20 5 p
2 3 8.60 7 la
3 4 7.20 8 la
4 5 2.10 7 p
5 6 1.00 2 g
6 7 3.50 5 g
7 8 4.50 3 la
我需要計算所有列的加權平均值,其中權重是在' dist'列並將這些值按'ind'分組。
例如關於「IND」 =「LA」和「差異」柱:
((10*0.54)+(8.60*7)+(7.20*8)+(4.50*3))/(10+7+8+3) = 4.882143
欲獲得的結果爲下列
cas diff
ind
g 6.714286 2.785714
la 3.107143 4.882143
p 3.750000 2.558333
其通過乘以每個獲得的每個柱子的值由'dist'列中的相應值相加,將結果與相同的'ind'相加,然後將結果除以所有與相同ind相對應的'dist'值的總和。
我認爲這將是一個簡單的任務,由數據框'groupby'方法完成,但實際上它有點棘手。
有人可以幫我嗎?
這實際上是工作!謝謝。唯一的問題是我寫的數據框只是一個例子,我正在處理大數據和數千列,所以我一直在尋找一個解決方案,我不必寫下列名... – Cecilia
@塞西莉亞,你可以通過使用'df.columns'獲得列的列表,並使用編輯 –
謝謝!這是我正在尋找的解決方案:) – Cecilia