Skip to main content
 首页 » 编程设计

python之pyspark 数据框中分组元素的分组和划分计数

2024年08月16日30zengkefu

我在 pyspark 中有一个数据框,如下所示。我想在 data frame

中执行 groupby 和 category 列的计数
df.show() 
+--------+----+ 
|category| val| 
+--------+----+ 
|    cat1|  13| 
|    cat2|  12| 
|    cat2|  14| 
|    cat3|  23| 
|    cat1|  20| 
|    cat1|  10| 
|    cat2|  30| 
|    cat3|  11| 
|    cat1|   7| 
|    cat1|   8| 
+--------+----+ 
 
 
res = df.groupBy('category').count() 
 
res.show() 
 
+--------+-----+ 
|category|count| 
+--------+-----+ 
|    cat2|    3| 
|    cat3|    2| 
|    cat1|    5| 
+--------+-----+ 

我得到了我想要的结果。现在我想计算类别的平均值。 data frame 有 3 天的记录。我想计算这 3 天的平均计数。

我想要的结果如下。我基本上想做 count/no.of.days

+--------+-----+ 
|category|count| 
+--------+-----+ 
|    cat2|    1| 
|    cat3|    1| 
|    cat1|    2| 
+--------+-----+ 

我该怎么做?

请您参考如下方法:

我相信你想要的是

from pyspark.sql import functions as F 
 
df.groupby('category').agg((F.count('val') / 3).alias('average'))