В ряде функций агрегирования, таких как Rolling_mean, Rolling_max, Rolling_min и т. д., входной аргумент window_size должен иметь тип int
Мне интересно, как эффективно вычислять результаты при наличии списка window_size.
Рассмотрим следующий кадр данных:
import polars as pl
pl.Config(tbl_rows=-1)
df = pl.DataFrame(
{
"symbol": ["A", "A", "A", "A", "A", "B", "B", "B", "B"],
"price": [100, 110, 105, 103, 107, 200, 190, 180, 185],
}
)
shape: (9, 2)
┌────────┬───────┐
│ symbol ┆ price │
│ --- ┆ --- │
│ str ┆ i64 │
╞════════╪═══════╡
│ A ┆ 100 │
│ A ┆ 110 │
│ A ┆ 105 │
│ A ┆ 103 │
│ A ┆ 107 │
│ B ┆ 200 │
│ B ┆ 190 │
│ B ┆ 180 │
│ B ┆ 185 │
└────────┴───────┘
Предположим, у меня есть список из n элементов, например периодов = [2, 3]. Я ищу решение для параллельного вычисления средних значений для всех периодов, сгруппированных по символу. Скорость и эффективность использования памяти имеют решающее значение.
Результатом должен стать аккуратный/длинный кадр данных, подобный этому:
shape: (18, 4)
┌────────┬───────┬─────────────┬──────────────┐
│ symbol ┆ price ┆ mean_period ┆ rolling_mean │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ u8 ┆ f64 │
╞════════╪═══════╪═════════════╪══════════════╡
│ A ┆ 100 ┆ 2 ┆ null │
│ A ┆ 110 ┆ 2 ┆ 105.0 │
│ A ┆ 105 ┆ 2 ┆ 107.5 │
│ A ┆ 103 ┆ 2 ┆ 104.0 │
│ A ┆ 107 ┆ 2 ┆ 105.0 │
│ B ┆ 200 ┆ 2 ┆ null │
│ B ┆ 190 ┆ 2 ┆ 195.0 │
│ B ┆ 180 ┆ 2 ┆ 185.0 │
│ B ┆ 185 ┆ 2 ┆ 182.5 │
│ A ┆ 100 ┆ 3 ┆ null │
│ A ┆ 110 ┆ 3 ┆ null │
│ A ┆ 105 ┆ 3 ┆ 105.0 │
│ A ┆ 103 ┆ 3 ┆ 106.0 │
│ A ┆ 107 ┆ 3 ┆ 105.0 │
│ B ┆ 200 ┆ 3 ┆ null │
│ B ┆ 190 ┆ 3 ┆ null │
│ B ┆ 180 ┆ 3 ┆ 190.0 │
│ B ┆ 185 ┆ 3 ┆ 185.0 │
└────────┴───────┴─────────────┴──────────────┘
Подробнее здесь: https://stackoverflow.com/questions/789 ... -dataframe
Применить несколько размеров окна к функциям скользящего агрегирования в кадре данных Polars ⇐ Python
Программы на Python
1762116915
Anonymous
В ряде функций агрегирования, таких как Rolling_mean, Rolling_max, Rolling_min и т. д., входной аргумент window_size должен иметь тип int
Мне интересно, как эффективно вычислять результаты при наличии списка window_size.
Рассмотрим следующий кадр данных:
import polars as pl
pl.Config(tbl_rows=-1)
df = pl.DataFrame(
{
"symbol": ["A", "A", "A", "A", "A", "B", "B", "B", "B"],
"price": [100, 110, 105, 103, 107, 200, 190, 180, 185],
}
)
shape: (9, 2)
┌────────┬───────┐
│ symbol ┆ price │
│ --- ┆ --- │
│ str ┆ i64 │
╞════════╪═══════╡
│ A ┆ 100 │
│ A ┆ 110 │
│ A ┆ 105 │
│ A ┆ 103 │
│ A ┆ 107 │
│ B ┆ 200 │
│ B ┆ 190 │
│ B ┆ 180 │
│ B ┆ 185 │
└────────┴───────┘
Предположим, у меня есть список из n элементов, например периодов = [2, 3]. Я ищу решение для параллельного вычисления средних значений для всех периодов, сгруппированных по символу. Скорость и эффективность использования памяти имеют решающее значение.
Результатом должен стать аккуратный/длинный кадр данных, подобный этому:
shape: (18, 4)
┌────────┬───────┬─────────────┬──────────────┐
│ symbol ┆ price ┆ mean_period ┆ rolling_mean │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ i64 ┆ u8 ┆ f64 │
╞════════╪═══════╪═════════════╪══════════════╡
│ A ┆ 100 ┆ 2 ┆ null │
│ A ┆ 110 ┆ 2 ┆ 105.0 │
│ A ┆ 105 ┆ 2 ┆ 107.5 │
│ A ┆ 103 ┆ 2 ┆ 104.0 │
│ A ┆ 107 ┆ 2 ┆ 105.0 │
│ B ┆ 200 ┆ 2 ┆ null │
│ B ┆ 190 ┆ 2 ┆ 195.0 │
│ B ┆ 180 ┆ 2 ┆ 185.0 │
│ B ┆ 185 ┆ 2 ┆ 182.5 │
│ A ┆ 100 ┆ 3 ┆ null │
│ A ┆ 110 ┆ 3 ┆ null │
│ A ┆ 105 ┆ 3 ┆ 105.0 │
│ A ┆ 103 ┆ 3 ┆ 106.0 │
│ A ┆ 107 ┆ 3 ┆ 105.0 │
│ B ┆ 200 ┆ 3 ┆ null │
│ B ┆ 190 ┆ 3 ┆ null │
│ B ┆ 180 ┆ 3 ┆ 190.0 │
│ B ┆ 185 ┆ 3 ┆ 185.0 │
└────────┴───────┴─────────────┴──────────────┘
Подробнее здесь: [url]https://stackoverflow.com/questions/78957022/apply-multiple-window-sizes-to-rolling-aggregation-functions-in-polars-dataframe[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия