Python 计算Pyspark中的平均用户存在
我有一个数据框,它有两列,Python 计算Pyspark中的平均用户存在,python,apache-spark,pyspark,pyspark-sql,Python,Apache Spark,Pyspark,Pyspark Sql,我有一个数据框,它有两列,days,表示用户被看到的天数和users,计算了这几天看到的用户数 +----+---------------+ |days|number_of_users| +----+---------------+ | 2| 3922| | 3| 1750| | 4| 883| | 5| 563| | 6| 319| | 7|
days
,表示用户被看到的天数和users
,计算了这几天看到的用户数
+----+---------------+
|days|number_of_users|
+----+---------------+
| 2| 3922|
| 3| 1750|
| 4| 883|
| 5| 563|
| 6| 319|
| 7| 157|
| 8| 79|
| 9| 31|
| 10| 9|
| 11| 2|
+----+---------------+
在2天内看到的用户(这里是3922)在3、4等时间内看不到。因此每个bucket包含一组唯一的用户。
如何从该数据帧计算平均用户存在
我在想一个类似于拿一个sum_I[users(I)*days(I)]/30
,其中30是一个月的总天数。然而,我不知道我如何才能做到这一点,或者它是否是正确的公式
编辑:AVERAGE USER PRESENCE(平均用户存在)是指用户被看到的平均天数,例如,从上表中,大约3.5天。平均用户存在天数将是加权平均值
sum_i[用户(i)*天(i)]/sum_i[用户(i)]
-
交叉核对:
(2*3922+3*1750+4*883+5*563+6*319+7*157+8*79+9*31+10*9+11*2)/(3922+1750+883+563+319+157+79+31+9+2)
= 23477/7715
= 3.0403
平均用户出现天数为加权平均值
sum_i[用户(i)*天(i)]/sum_i[用户(i)]
-
交叉核对:
(2*3922+3*1750+4*883+5*563+6*319+7*157+8*79+9*31+10*9+11*2)/(3922+1750+883+563+319+157+79+31+9+2)
= 23477/7715
= 3.0403
谢谢你,你知道我如何使用数据框的列直接将其应用于数据框吗?应该是sum_I[用户(I)*天(I)]/sum_I[用户(I)],因为你在使用加权平均数。谢谢你,你知道我如何使用数据框的列直接将其应用于数据框吗?应该是sum_I[用户(I)*天(I)]/sum_I[用户(I)],因为你在取加权平均值。