Исключение паники при расчете совокупной оценки для каждой группы в полярах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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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