import polars as pl import pandas as pd import duckdb as duck from contexttimer import Timer if __name__ == '__main__': loops: int = 10 pf = pl.read_csv("data/womens-shoes.csv", infer_schema_length=2 ** 30) df = pd.read_csv("data/womens-shoes.csv") # Polars Dataframe (±9ms) with Timer() as timer: for i in range(loops): df2 = pf.sort("prices.amountMin", descending=bool(i % 2)) print(df2["prices.amountMin"][0]) print(timer.elapsed) # DuckDB Dataframe (±1000ms) with Timer() as timer: for i in range(loops): asc = "ASC" if i % 2 == 0 else "DESC" df2 = duck.query(f"""SELECT * FROM df ORDER BY "prices.amountMin" {asc}""").to_df() print(df2["prices.amountMin"].iloc[0]) print(timer.elapsed)