在python中使用groupby进行计算
我有一个如下所示的示例数据帧在python中使用groupby进行计算,python,pandas,math,group-by,Python,Pandas,Math,Group By,我有一个如下所示的示例数据帧df,我正在使用python中的groupby来解决其中四列colalphan\u fold相等的问题,然后取count列的和,并执行类似(score*count)/sum(count)的数学运算 df= 输出: col alpha lambda折叠最终版 0 0.5 0 1 1 -0.685249027 1 0.75 0 1 1 -0.750428163 2 1
df
,我正在使用python中的groupby
来解决其中四列col
alpha
n\u fold
相等的问题,然后取count
列的和,并执行类似(score*count)/sum(count)的数学运算
df=
输出:
col alpha lambda折叠最终版
0 0.5 0 1 1 -0.685249027
1 0.75 0 1 1 -0.750428163
2 1 0 1 2 -0.772006323
我已经尝试了下面的代码,但我无法解决。有没有办法解决这个问题
代码:df2=(df.groupby(['sample','alpha','lambda','n\u fold'])。应用(lambda x:(x.score*x.count)/sum(count))。到帧('final'))
IIUC
df.groupby(['col', 'alpha', 'lambda', 'n_fold']).apply(lambda x: sum((x['score']*x['count']))/sum(x['count']))
Out[352]:
col alpha lambda n_fold
0.50 0 1 1 -0.685249
0.75 0 1 1 -0.750428
1.00 0 1 2 -0.772006
dtype: float64
df.groupby(['col', 'alpha', 'lambda', 'n_fold']).apply(lambda x: sum((x['score']*x['count']))/sum(x['count']))
Out[352]:
col alpha lambda n_fold
0.50 0 1 1 -0.685249
0.75 0 1 1 -0.750428
1.00 0 1 2 -0.772006
dtype: float64