Поляры: вычислить построчный квантиль по DataFramePython

Программы на Python
Ответить
Anonymous
 Поляры: вычислить построчный квантиль по DataFrame

Сообщение Anonymous »

У меня есть несколько полярных фреймов данных, по которым я хочу вычислить некоторую статистику по строкам.
Для некоторых существует функция .list.func (например, list.mean), однако для тех, у которых нет специальной функции, я считаю, что я должен использовать list.eval.
Для следующих примеров данных:

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

import numpy as np
import polars as pl

df = pl.DataFrame({
'a': [1,10,1,.1,.1,     np.NAN],
'b': [2, 8,1,.2, np.NAN,np.NAN],
'c': [3, 6,2,.3,.2,     np.NAN],
'd': [4, 4,3,.4, np.NAN,np.NAN],
'e': [5, 2,3,.5,.3,     np.NAN],
}, strict=False)
Мне удалось придумать следующее выражение.
Похоже, что list.eval возвращает список (который, я полагаю, является более общим), поэтому мне нужно вызвать .explode в результирующем списке из 1 элемента, чтобы получить одно значение.
Полученный столбец принимает имя первого столбца, поэтому мне затем нужно вызвать .alias, чтобы придать ему более содержательный смысл. имя.

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

df.select(
pl.concat_list(
pl.all().fill_nan(None)
)
.list.eval(pl.element().quantile(0.25))
.explode()
.alias('q1')
)
Это рекомендуемый способ вычисления по строкам?


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

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

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

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

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

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