Python Pyspark中的分组和标准化值
所以,我有一个Pyspark类型的数据帧 团体 价值 A. 12 B 10 A. 1. B 0 B 1. A. 6.Python Pyspark中的分组和标准化值,python,sql,pyspark,apache-spark-sql,Python,Sql,Pyspark,Apache Spark Sql,所以,我有一个Pyspark类型的数据帧 团体 价值 A. 12 B 10 A. 1. B 0 B 1. A. 6. 您可以使用窗口函数计算每组的平均值和STDEV: from pyspark.sql import functions as F, Window df2 = df.withColumn( 'Value', (F.col('Value') - F.mean('Value').over(Window.partitionBy('Group'))) / F.s
您可以使用窗口函数计算每组的平均值和STDEV:
from pyspark.sql import functions as F, Window
df2 = df.withColumn(
'Value',
(F.col('Value') - F.mean('Value').over(Window.partitionBy('Group'))) /
F.stddev_pop('Value').over(Window.partitionBy('Group'))
)
df2.show()
+-----+--------------------+
|Group| Value|
+-----+--------------------+
| B| 1.4083737016560922|
| B| -0.8153742483272112|
| B| -0.5929994533288808|
| A| 1.2601238383238722|
| A| -1.1859989066577619|
| A|-0.07412493166611006|
+-----+--------------------+
请注意,由于Spark数据帧没有索引,结果的顺序将是随机的。您希望的输出是什么,为什么?换句话说,你所说的标准化值是什么意思。@安德鲁现在应该更清楚了,但你用的是什么逻辑?你是如何提出这些价值观的?第一行如何生成1.26012384?