gpt4 book ai didi

python - 分组依据、应用函数并插入具有相应值的新列

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:06 25 4
gpt4 key购买 nike

我正在尝试计算某些用户群组的加权平均值,但似乎无法获取输出并用它形成一个新列。

我试过 groupby 和 apply 函数,但似乎无法将其转换回新列

 df = pd.DataFrame('cohort_size': [10,15,20,25,20,15],
'retention' : [0.3,0.2,0.4,0.5,0.6,0.5],
'nth_interval' : [1,1,1,7,7,7])

df.groupby('nth_interval').apply(lambda x: np.average(x['retention'], weights=x['cohort_size']))

我得到的是一个系列的输出,但我真正想要的是取这些单独的加权平均值并将它们作为数据框中的新列放回,其中每个列值对应于第 nth_interval

最佳答案

IIUC,你在找这个吗?

df.merge(df.groupby('nth_interval').apply(lambda x: np.average(x['retention'],
weights=x['cohort_size']))
.rename('wgted_avg').reset_index(),
on='nth_interval')

输出:

   cohort_size  retention  nth_interval  wgted_avg
0 10 0.3 1 0.311111
1 15 0.2 1 0.311111
2 20 0.4 1 0.311111
3 25 0.5 7 0.533333
4 20 0.6 7 0.533333
5 15 0.5 7 0.533333

关于python - 分组依据、应用函数并插入具有相应值的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com