Есть ли у Polars groupby функция, похожая на idxmax() из pandas?Python

Программы на Python
Ответить
Anonymous
 Есть ли у Polars groupby функция, похожая на idxmax() из pandas?

Сообщение Anonymous »

В pandas я могу получить верхний столбец с помощью idxmax()
import polars as pl
import pandas as pd

A = ['a','a','a','a','a','a','a','b','b','b','b','b','b','b']
B = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

df = pl.DataFrame({'cola':A,
'colb':B})

df_pd = df.to_pandas()

index = df_pd.groupby('cola')['colb'].idxmax()
df_pd.loc[index,'top'] = 1

Однако в Polars, если я использую arg_max(), я получаю сообщение об ошибке:
index = df[pl.col('colb').arg_max().over('cola').flatten()]
# TypeError: cannot select columns using key of type 'Expr'

Есть ли способ создать «верхний» столбец в Polars?
with pl.Config(tbl_rows=-1):
print(pl.from_pandas(df_pd))

shape: (14, 3)
┌──────┬──────┬──────┐
│ cola ┆ colb ┆ top │
│ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ f64 │
╞══════╪══════╪══════╡
│ a ┆ 1 ┆ null │
│ a ┆ 2 ┆ null │
│ a ┆ 3 ┆ null │
│ a ┆ 4 ┆ null │
│ a ┆ 5 ┆ null │
│ a ┆ 6 ┆ null │
│ a ┆ 7 ┆ 1.0 │
│ b ┆ 8 ┆ null │
│ b ┆ 9 ┆ null │
│ b ┆ 10 ┆ null │
│ b ┆ 11 ┆ null │
│ b ┆ 12 ┆ null │
│ b ┆ 13 ┆ null │
│ b ┆ 14 ┆ 1.0 │
└──────┴──────┴──────┘


Подробнее здесь: https://stackoverflow.com/questions/708 ... rom-pandas
Ответить

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

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

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

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

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