Как использовать group_by и применить пользовательскую функцию с помощью Polars?Python

Программы на Python
Ответить
Anonymous
 Как использовать group_by и применить пользовательскую функцию с помощью Polars?

Сообщение Anonymous »

Я ломаю голову, пытаясь понять, как использовать group_by и применить пользовательскую функцию с помощью Polars.
Из Pandas я использовал:

Код: Выделить всё

import polars as pl
import pandas as pd
from scipy.stats import spearmanr

def get_score(df):
return spearmanr(df["prediction"], df["target"]).correlation

df = pd.DataFrame({
"era": [1, 1, 1, 2, 2, 2, 5],
"prediction": [2, 4, 5, 190, 1, 4, 1],
"target": [1, 3, 2, 1, 43, 3, 1]
})

correlations = df.groupby("era").apply(get_score)
В Polars есть функция map_groups(), позволяющая применять пользовательскую функцию к группам, что я и пробовал:

Код: Выделить всё

df_pl = pl.from_pandas(df)

correlations = df_pl.group_by("era").map_groups(get_score)
Но при этом появляется сообщение об ошибке:

'Не удалось получить атрибут DataFrame '_df'. Убедитесь, что вы возвращаете объект DataFrame.: PyErr { type: , value: AttributeError("объект 'float' не имеет атрибута '_df'"), обратная трассировка: нет

Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/695 ... ith-polars
Ответить

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

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

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

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

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