pyspark groupby 加权平均?

  统计/机器学习 数据预处理 Python    浏览次数:1544        分享
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个回答 
3

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

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面试题库 DS面经

AlphaCat   2018-11-02 14:05



  相关主题

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

python中求加权中位数   1回答

python中计算加权平均   1回答

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

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

钓鱼网站欺诈识别里评价标准加权logloss在python里对应的函数是什么?   1回答

python里计算加权的相关系数?   2回答

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

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

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

怎么对pyspark.sql.dataframe按照某一列降序排列?   1回答

pyspark中怎么对dataframe里的行按照列去重?   1回答



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

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

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

我们谢绝答非所问。

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

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