Pyspark:如何计算数据框中条件的百分比



如何计算性能的数量,使性能= P<=5;P> 5,术;= 15;P> 15

tbody> <<tr>
address performance = P
机舱589
机舱0
机舱48
机舱318
机舱378
机舱52
机舱45
机舱201
机舱416
机舱29日
机舱183
机舱53
机舱7
机舱127
机舱157
机舱248
机舱10
机舱317
机舱2
机舱4

以您的数据框架为例:

+--------+-----------+                                                          
| address|performance|
+--------+-----------+
|NACELLES|        589|
|NACELLES|          0|
|NACELLES|         48|
|NACELLES|        318|

您只需使用when函数进行聚合和求和:

df.groupBy("address").agg(
(F.sum(F.when(F.col("performance") <= 5, 1)) / F.count("*")).alias("P<=5"),
(
F.sum(F.when((F.col("performance") > 5) & (F.col("performance") <= 15), 1))
/ F.count("*")
).alias("P>5 & P<=15"),
(F.sum(F.when(F.col("performance") > 15, 1)) / F.count("*")).alias("P>15"),
).show()
+--------+----+-----------+----+
| address|P<=5|P>5 & P<=15|P>15|
+--------+----+-----------+----+
|NACELLES|0.15|        0.1|0.75|
+--------+----+-----------+----+

相关内容

  • 没有找到相关文章

最新更新