polars_qt
Useful Quant expressions for polars implemented by polars plugin.
Currently :
rolling_rank
import polars as pl
import polars_qt as pq
df = pl.DataFrame({
'a': [5.2, 4.1, 6.3, None, 10, 4, 5],
})
df.with_columns(
pq.rolling_rank(pl.col('a'), 4, min_periods=1, pct=True).alias('a_rank'),
pl.col('a').qt.rolling_rank(4, pct=False, rev=True).alias('a_rank2')
)
shape: (7, 3)
โโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโ
โ a โ a_rank โ a_rank2 โ
โ --- โ --- โ --- โ
โ f64 โ f64 โ f64 โ
โโโโโโโโชโโโโโโโโโโโชโโโโโโโโโโก
โ 5.2 โ 1.0 โ null โ
โ 4.1 โ 0.5 โ 2.0 โ
โ 6.3 โ 1.0 โ 1.0 โ
โ null โ null โ null โ
โ 10.0 โ 1.0 โ 1.0 โ
โ 4.0 โ 0.333333 โ 3.0 โ
โ 5.0 โ 0.666667 โ 2.0 โ
โโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโ
If-then
df = pl.DataFrame({
'g': ['a', 'a', 'b', 'a', 'b'],
'v': [1, 3, 5, 2, 4],
})
df.select(pl.col('v').qt.if_then((pl.len()>2), pl.col('v')*2).over('g'))
shape: (5, 1)
โโโโโโโ
โ v โ
โ --- โ
โ i64 โ
โโโโโโโก
โ 2 โ
โ 6 โ
โ 5 โ
โ 4 โ
โ 4 โ
โโโโโโโ
้็จไบ้่้ๅ้ขๅ็polars่กจ่พพๅผๆฉๅฑ๏ผไฝฟ็จpolars pluginๅฎ็ฐใ
็ฎๅๆฏๆ๏ผ
- ๆปๅจๆๅบ
- if_then่กจ่พพๅผ
- ๅฉ็จ็ญ็ฅไฟกๅทๅๆตๆถ็