Как сгруппировать_by, а затем перекрестно объединить с полярами?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сгруппировать_by, а затем перекрестно объединить с полярами?

Сообщение Anonymous »

Я начал использовать поляры и все еще изучаю синтаксис.
Я хотел бы получить группировку с последующим перекрестным соединением (декартово произведение), где я хочу выполнить расчет между каждой комбинацией внутри каждой группы. (Это также можно понимать как условное соединение).
Я получил образец фрейма данных ниже:

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

import polars as pl

df = pl.DataFrame(
{
"garment": ["tshirt", "tshirt", "tshirt", "pants", "pants", "pants", "socks", "socks", "socks"],
"color": ["red", "blue", "green", "yellow", "orange", "purple", "black", "white", "grey"],
"price": [100, 50, 75, 101, 51, 69, 99, 44, 32]
}
)
print(df)
Я понял, как выбрать одну группу (в данном случае: все брюки) и как посчитать разницу в цене между всеми товарами.

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

# for one group
df_pants = df.filter(pl.col('garment') == 'pants')
df_pants.join(df_pants, how="cross").filter(
pl.col('color') != pl.col('color_right') # avoid self-joins
).with_columns(
(pl.col('price') - pl.col('price_right')).abs().alias('difference')
)
Но я хотел бы написать полярное выражение, которое сначала группирует весь набор данных по «одежде», а затем выполняет объединение внутри каждой группы; и, наконец, выполняет расчеты (в данном примере — разницу в цене).
Будем благодарны за любую помощь!
Изменить:
Кроме того, хотелось бы, чтобы были только уникальные комбинации. Так что только «оранжевый» и «желтый», но не «желтый» и «оранжевый».

Подробнее здесь: https://stackoverflow.com/questions/769 ... ith-polars
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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