import pandas as pd
import polars as pl
import pytimetk as tk
df = tk.load_dataset("stocks_daily", parse_dates=["date"])
# Pandas example (engine inferred)
rsi_pd = (
df.groupby("symbol")
.augment_rsi(
date_column="date",
close_column="close",
periods=[14, 28],
)
)
# Polars example using the tk accessor
rsi_pl = (
pl.from_pandas(df.query("symbol == 'AAPL'"))
.tk.augment_rsi(
date_column="date",
close_column=["close"],
periods=14,
)
)augment_rsi
augment_rsi(
data,
date_column,
close_column,
periods=14,
reduce_memory=False,
engine='auto',
)Calculate the Relative Strength Index (RSI) for pandas or polars data.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| data | DataFrame or GroupBy(pandas or polars) | Financial data to augment. Grouped inputs are processed per group before RSI columns are appended. | required |
| date_column | str | Name of the column containing date information. | required |
| close_column | str or list[str] | Column name(s) containing the closing prices used to compute RSI. When a list is supplied an RSI is generated for each column. | required |
| periods | int, tuple, or list | Lookback window(s) used when computing RSI. Accepts an integer, an inclusive tuple range, or a list of explicit periods. Defaults to 14. |
14 |
| reduce_memory | bool | Attempt to reduce memory usage when operating on pandas data. If a polars input is supplied a warning is emitted and no conversion occurs. | False |
| engine | (auto, pandas, polars, cudf) | Execution engine. "auto" (default) infers the backend from the input data while allowing explicit overrides. |
"auto" |
Returns
| Name | Type | Description |
|---|---|---|
| DataFrame | DataFrame with {close_column}_rsi_{period} columns appended. The return type matches the input backend. |
Notes
RSI follows Wilderβs formulation, separating gains and losses before computing smoothed averages and forming the ratio. Values range from 0 to 100, with extreme readings typically interpreted as overbought or oversold. Division-by-zero cases yield NaN which mirrors pandas behaviour.