tgoop.com/dsproglib/6520
Create:
Last Update:
Last Update:
⚡️ Narwhals: универсальные функции для любых DataFrame
С Narwhals можно писать функции, которые работают с разными библиотеками данных — pandas, polars, DuckDB, PySpark и даже PyArrow, без лишних зависимостей.
import narwhals as nw
from narwhals.typing import IntoFrameT
def agnostic_function(df_native: IntoFrameT, date_column: str, price_column: str) -> IntoFrameT:
return (
nw.from_native(df_native)
.group_by(nw.col(date_column).dt.truncate("1mo"))
.agg(nw.col(price_column).mean())
.sort(date_column)
.to_native()
)
Работает и с pandas:
import pandas as pd
from datetime import datetime
data = {
"date": [datetime(2020, 1, 1), datetime(2020, 1, 8), datetime(2020, 2, 3)],
"price": [1, 4, 3],
}
print(agnostic_function(pd.DataFrame(data), "date", "price"))
И с Polars:
import polars as pl
print(agnostic_function(pl.DataFrame(data), "date", "price"))
👌 Подробные примеры можно посмотреть в статье: https://clc.to/RytBgA
Библиотека дата-сайентиста #буст