pandas: groupby and variable weights

断了今生、忘了曾经 提交于 2019-12-01 08:21:12

Simply multiply the two columns:

In [11]: df_city['weighted_jobs'] = df_city['weight'] * df_city['jobs']

Now you can groupby the city (and take the sum):

In [12]: df_city_sums = df_city.groupby('city').sum()

In [13]: df_city_sums
Out[13]: 
           jobs  weight  weighted_jobs
city                                  
oakland     362     690           7958
san mateo   367    1017           9026
sf          253     638           6209

[3 rows x 3 columns]

Now you can divide the two sums, to get the desired result:

In [14]: df_city_sums['weighted_jobs'] / df_city_sums['jobs']
Out[14]: 
city
oakland      21.983425
san mateo    24.594005
sf           24.541502
dtype: float64
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!