pyspark groupby 加权平均?

  统计/机器学习 数据预处理 Python    浏览次数:5830        分享
1

比如说对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个回答 
4

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

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



  相关讨论

python中计算加权平均

python中求加权中位数

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

模型融合方法:加权融合

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

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

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

怎么对pyspark dataframe里的空缺值填值?

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

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

  随便看看

AIC可以是负数吗?

训练神经网络中经常提到的epoch是什么意思

NLP里的OOV是什么意思?

查看sklearn的线性回归系数的p value

随机森林会发生过拟合(overfitting)吗?