Я пытаюсь вычислить долю определенного значения, встречающегося в определенном столбце в подгруппах.
Пример фрейма данных
pdf = pd.DataFrame({
'id': [1, 1, 1, 1, 2, 2, 2, 3, 3, 3],
'letter': ['L', 'A', 'L', 'L', 'L', 'L', 'L', 'A', 'L', 'L']
})
df = spark.createDataFrame(pdf)
df.show()
Я пытался положиться на этот ответ, но со следующим кодом
df\
.groupby('id')\
.agg((count(col('letter') == 'L') / count(col('letter'))).alias('prop'))\
.show()
Я получил столбец, полный 1.0
, даже когда я изменил 'L'
на 'A'
.
Мой желаемый результат - это соотношение 'L'
значений внутри группы для каждой группы:
+---+--------+
| id| prop|
+---+--------+
| 1| 0.75|
| 2| 1.0|
| 3| 0.66667|
+---+--------+