擅长:python、mysql、java
<p>这就是我最后做的。我并不以它为荣——它并不优雅,而且我无法像我最初想要的那样计算聚合函数中的加权平均值。但它与@jlb_gouveia提供的解决方案配合使用:</p>
<pre><code>dfsw = dfpa.agg({'pa_pop':sum}, axis = 0)
#convert list to dataframe because the above creates a list
dfsw = dfsw.to_frame()
#transpose so that index becomes column headers
dfsw = dfsw.transpose()
#renames column headers to new names
dfsw.columns = dfsw.columns.str.replace('pa','sw')
#add weighted means
dfsw['sw_mean_ea_kwh'] = (dfpa['pa_pop']*dfpa['pa_mean_ea_kwh']).sum()/(dfpa['pa_pop'].sum())
</code></pre>
<p>这就是我的最终输出:</p>
<pre><code> sw_pop sw_n sw_ncmplt...sw_mean_ea_kwh... sw_mean_ep_kwh
0 1903.0 140.0 140.0 ....192597.28147843637 206253.99375475512
</code></pre>
<p>(我在上面的代码中做了许多求和和和加权平均,我删除了附加列的代码以保持简单)</p>
<p>如果有人有一个更优雅的方式来实现这一点,我想提高</p>