У меня есть следующая база данных из FRED API:
self.yielddiff_lf
shape: (9, 5)
┌────────────┬────────────────────────────┬──────────┬──────────┬─────────────┐
│ statistic ┆ Date ┆ 5y Rate ┆ 1y Rate ┆ Rate Spread │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ f64 ┆ f64 ┆ f64 │
╞════════════╪════════════════════════════╪══════════╪══════════╪═════════════╡
│ count ┆ 82 ┆ 82.0 ┆ 82.0 ┆ 82.0 │
│ mean ┆ 2023-03-02 08:29:16.097000 ┆ 3.737073 ┆ 4.740244 ┆ -1.003171 │
│ std ┆ null ┆ 0.267561 ┆ 0.220112 ┆ 0.145185 │
│ min ┆ 2023-01-03 ┆ 3.36 ┆ 4.19 ┆ -1.29 │
│ 25% ┆ 2023-02-01 ┆ 3.54 ┆ 4.64 ┆ -1.12 │
│ 50% ┆ 2023-03-03 ┆ 3.66 ┆ 4.71 ┆ -1.03 │
│ 75% ┆ 2023-03-31 ┆ 3.93 ┆ 4.88 ┆ -0.92 │
│ max ┆ 2023-04-28 ┆ 4.34 ┆ 5.25 ┆ -0.6 │
└────────────┴────────────────────────────┴──────────┴──────────┴─────────────┘
Я пытаюсь создать столбец, который представляет собой разброс ставок (5y / числитель) минус 1y (знаменатель).
Затем я хочу создать столбец увеличения % на основе этого разброса ставок.
У меня есть следующий код, который выдает ошибку «polars.Exceptions.ColumnNotFoundError: разброс ставок»
Попытка #1 выдает ошибку: Polars.Exceptions.ColumnNotFoundError: Разброс ставок
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
),
(
pl.col("Rate Spread").pct_change().alias("Spread % Change")*100)
)
Попытка №2 дает один столбец с именем «Процент изменения спреда», и я понимаю, почему:
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
).pct_change().alias("Spread % Change")*100
)
как мне создать эти два столбца в одном операторе с помощью LazyFrame от Polar?
Попытка № 1 приводит к ошибке: Polars.Exceptions.ColumnNotFoundError: Rate Spread
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
),
(
pl.col("Rate Spread").pct_change().alias("Spread % Change")*100)
)
Попытка № 2 дает один столбец с именем «Процент изменения спреда», и я понимаю, почему, но я хочу сохранить столбцы «Разброс ставок» и «% изменения»:
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
).pct_change().alias("Spread % Change")*100
)
Подробнее здесь: https://stackoverflow.com/questions/788 ... mn-referen
Могу ли я создать два выражения и два столбца, где второй столбец ссылается на первый в той же строке? [дубликат] ⇐ Python
Программы на Python
1765909318
Anonymous
У меня есть следующая база данных из FRED API:
self.yielddiff_lf
shape: (9, 5)
┌────────────┬────────────────────────────┬──────────┬──────────┬─────────────┐
│ statistic ┆ Date ┆ 5y Rate ┆ 1y Rate ┆ Rate Spread │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ f64 ┆ f64 ┆ f64 │
╞════════════╪════════════════════════════╪══════════╪══════════╪═════════════╡
│ count ┆ 82 ┆ 82.0 ┆ 82.0 ┆ 82.0 │
│ mean ┆ 2023-03-02 08:29:16.097000 ┆ 3.737073 ┆ 4.740244 ┆ -1.003171 │
│ std ┆ null ┆ 0.267561 ┆ 0.220112 ┆ 0.145185 │
│ min ┆ 2023-01-03 ┆ 3.36 ┆ 4.19 ┆ -1.29 │
│ 25% ┆ 2023-02-01 ┆ 3.54 ┆ 4.64 ┆ -1.12 │
│ 50% ┆ 2023-03-03 ┆ 3.66 ┆ 4.71 ┆ -1.03 │
│ 75% ┆ 2023-03-31 ┆ 3.93 ┆ 4.88 ┆ -0.92 │
│ max ┆ 2023-04-28 ┆ 4.34 ┆ 5.25 ┆ -0.6 │
└────────────┴────────────────────────────┴──────────┴──────────┴─────────────┘
Я пытаюсь создать столбец, который представляет собой разброс ставок (5y / числитель) минус 1y (знаменатель).
Затем я хочу создать столбец увеличения % на основе этого разброса ставок.
У меня есть следующий код, который выдает ошибку «polars.Exceptions.ColumnNotFoundError: разброс ставок»
Попытка #1 выдает ошибку: Polars.Exceptions.ColumnNotFoundError: Разброс ставок
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
),
(
pl.col("Rate Spread").pct_change().alias("Spread % Change")*100)
)
Попытка №2 дает один столбец с именем «Процент изменения спреда», и я понимаю, почему:
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
).pct_change().alias("Spread % Change")*100
)
как мне создать эти два столбца в одном операторе с помощью LazyFrame от Polar?
Попытка № 1 приводит к ошибке: Polars.Exceptions.ColumnNotFoundError: Rate Spread
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
),
(
pl.col("Rate Spread").pct_change().alias("Spread % Change")*100)
)
Попытка № 2 дает один столбец с именем «Процент изменения спреда», и я понимаю, почему, но я хочу сохранить столбцы «Разброс ставок» и «% изменения»:
self.yielddiff_lf = self.yielddiff_lf.with_columns(
(
(pl.col(f"{numerator} Rate") - pl.col(f"{denominator} Rate"))
.round(3).alias("Rate Spread")
).pct_change().alias("Spread % Change")*100
)
Подробнее здесь: [url]https://stackoverflow.com/questions/78818569/can-i-run-create-two-expressions-and-two-columns-where-the-second-column-referen[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия