Как получить значение указанного индексного номера в результате сортировки столбца и заполнить его нулевым значением, есPython

Программы на Python
Гость
Как получить значение указанного индексного номера в результате сортировки столбца и заполнить его нулевым значением, ес

Сообщение Гость »

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

import polars as pl

df = pl.DataFrame(
{"name": list("abcdef"), "age": [21, 31, 32, 53, 45, 26], "country": list("AABBBC")}
)

df.group_by("country").agg(
pl.col("name").sort_by("age").first().alias("age_sort_1"),
pl.col("name").sort_by("age").get(2).alias("age_sort_2"),  # OutOfBoundsError: index out of bounds
# pl.col("name").sort_by("age").arr.get(2, null_on_oob=True).alias("age_2"),
# SchemaError: invalid series dtype: expected `FixedSizeList`, got `str`
pl.col("name").sort_by("age").last().alias("age_sort_-1")
)
Как показано в приведенном выше коде, я хочу получить имя в каждой стране, возраст которой указан в определенном порядке.
Однако Expr.get не предоставляет параметр null_on_oob. Как автоматически заполнять значение null при возникновении ситуации выхода за границы?
Кроме того, метод .arr.get предоставляет параметр null_on_oob, но сообщает об ошибке SchemaError: недопустимая серия dtype: ожидается «FixedSizeList», получено «str». Я не знаю, к чему относится эта ошибка и как ее решить.
ps: В приведенном выше коде используется повторяющийся код pl.col("name").sort_by("возраст") много раз. Есть ли более краткий метод?

Подробнее: https://stackoverflow.com/questions/788 ... -column-an

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