Исключение паники при расчете совокупной оценки для каждой группы в полярах ⇐ Python

Программы на Python
Anonymous
Исключение паники при расчете совокупной оценки для каждой группы в полярах

Сообщение Anonymous »

Я хочу вычислить совокупные значения (например, среднее значение, количество уникальных значений и режим) для каждой группы, а в некоторых группах есть только значение «Нет».
Когда я вычисляю значения для столбцов, в которых нет значения «Нет», я получаю правильный результат. Однако, когда я указываю столбцы, в некоторых группах которых есть только «Нет», я получаю следующую ошибку.
PanicException: called `Result::unwrap()` on an `Err` value: SchemaMisMatch(Borrowed("cannot unpack Series; data types don't match"))

Как рассчитать значения?
Например,
pl_df = pl.DataFrame({'key': [1, 1, 2, 1, 2, 3, 3, 3, 2],
'col1': [1, 2, 1, 3, 1, 2, 3, 4, 1],
'col2': [1, 2, None, 3, None, None, 3, 4, None]})

pl_df.groupby('key').agg([
pl.col('col1').cumulative_eval(pl.element().mean()).suffix('_cummean')
]).explode(['col1_cummean'])

Out:
key col1_cummean
1 1.0
1 1.5
1 2.0
2 1.0
2 1.0
2 1.0
3 2.0
3 2.5
3 3.0

pl_df.groupby('key').agg([
pl.col('col2').cumulative_eval(pl.element().mean()).suffix('_cummean')
]).explode(['col2_cummean'])

Out:
PanicException: called `Result::unwrap()` on an `Err` value: SchemaMisMatch(Borrowed("cannot unpack Series; data types don't match"))

Я попробовал выражение ниже
pl_df.select(pl.col('col2').cumulative_eval(pl.element().mean()).over('key'))

Но произошло то же исключение.
Мои ожидания такие же
pl_df.groupby('key').agg([
pl.col('col2').cumulative_eval(pl.element().mean()).suffix('_cummean')
]).explode(['col2_cummean'])

Out:
key col1_cummean
1 1.0
1 1.5
1 2.0
2 null
2 null
2 null
3 null
3 3.0
3 3.5


Подробнее здесь: https://stackoverflow.com/questions/752 ... -in-polars

Вернуться в «Python»