Я хочу вычислить совокупные значения (например, среднее значение, количество уникальных значений и режим) для каждой группы, а в некоторых группах есть только значение «Нет».
Когда я вычисляю значения для столбцов, в которых нет значения «Нет», я получаю правильный результат. Однако, когда я указываю столбцы, в некоторых группах которых есть только «Нет», я получаю следующую ошибку.
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