pyspark groupby 加权平均?

  统计/机器学习 数据预处理 Python    浏览次数: 69
0

比如说对df['id']进行groupby,df['value']是数值,df['weight']是权重,怎么对pyspark dataframe对id进行加权平均,有没有类似这样的功能

df.groupby('id').agg(weight_avg('value', 'weight'))

新上手pyspark,不大熟悉

 

烙神经   2018-10-31 12:27



   1个回答 
2

并没有直接做加权平均的函数,你可以自己写出表达式来

from pyspark.sql import functions as F

df = df.groupby('id')\
        .agg(F.sum(F.col('value') * F.col('weight'))/F.sum(F.col('weight'))\
        .alias('w_mean'))

你也可以自己按照上面的式子写udf

SofaSofa数据科学社区 DS面经 问答 实战

AlphaCat   2018-11-02 14:05



  相关主题

python中计算加权平均   1回答

python里求加权标准差或者加权方差的函数是什么?   1回答

python中求加权中位数   1回答

如何计算加权最小二乘法的样本权重?   2回答

模型融合方法:加权融合   1回答

sklearn.cluster.KMeans怎么给样本加权重?   1回答

如何对pyspark dataframe删除一列   2回答

得到一个pyspark.sql.dataframe中所有列的名称   2回答

pyspark里如何进行SELECT DISTINCT操作?   1回答

pyspark里unpersist()什么作用?   1回答

怎么将两个pyspark dataframe以串联的形式合并?   1回答

怎么对pyspark dataframe更改列名   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!