Код: Выделить всё
df = pl.DataFrame(
{
"answer": ["yes","yes","yes","yes","maybe","maybe","maybe"],
"value": [5,10,7,8,6,9,10],
}
)
Код: Выделить всё
┌────────┬───────┐
│ answer ┆ value │
│ --- ┆ --- │
│ str ┆ i64 │
╞════════╪═══════╡
│ yes ┆ 5 │
│ yes ┆ 10 │
│ yes ┆ 7 │
│ yes ┆ 8 │
│ maybe ┆ 6 │
│ maybe ┆ 9 │
│ maybe ┆ 10 │
└────────┴───────┘
Я пробовал чтобы взломать что-то вместе, и в итоге получился код, который ужасно читать, а также содержит ошибку, которую я не знаю, как обойти:
Код: Выделить всё
df.with_columns(
(
(pl.col("value").sum().over(pl.col("answer")) - pl.col("value"))
/ (pl.col("value").count().over(pl.col("answer")) - 1)
).alias("average_other")
).with_columns(
(
(
(
(pl.col("value") - pl.col("average_other")).pow(2).sum().over(pl.col("answer"))
- (pl.col("value") - pl.col("average_other")).pow(2)
)
/ (pl.col("value").count().over(pl.col("answer")) - 1)
).sqrt()
).alias("std_dev_other")
)
Код: Выделить всё
pl.col("value") - pl.col("average_other")).pow(2).sum().over(pl.col("answer"))
Мой главный вопрос: "Как лучше всего получить стандартное отклонение, не учитывая это значение?" часть. Но мне также было бы интересно, есть ли способ провести сравнение, которое я делаю неправильно выше. В-третьих, это советы о том, как написать это так, чтобы было легко понять, что происходит.
Подробнее здесь: https://stackoverflow.com/questions/753 ... t-this-one