Ibis
import ibis
import ibis.selectors as s
ibis.options.interactive = True
t = ibis.examples.penguins.fetch()
t.head(3)
(
t.filter(ibis._["body_mass_g"] != None)
.group_by(["species", "island"])
.aggregate(count=ibis._.count())
.order_by(ibis.desc("count"))
)
import matplotlib.pyplot as plt
chart = grouped.to_pandas().plot.bar(
x="species",
y="count",
figsize=(600 / 100, 400 / 100),
)
plt.show()
import ibis.selectors as s
def transform(t):
t = t.mutate(
s.across(s.numeric(), {"zscore": lambda x: (x - x.mean()) / x.std()})
).dropna()
return t
f = transform(t.drop("year"))
f.select("species", "island", s.contains("zscore"))
import ibis
t = ibis.examples.penguins.fetch()
con = ibis.duckdb.connect("penguins.ddb")
con.create_table("penguins", t.to_pyarrow(), overwrite=True)
t = con.table("penguins")
t.head(3)
t.to_parquet("penguins.parquet")
ibis.read_parquet("penguins.parquet").head(3)
df = t.to_pandas()
import polars as pl
df = pl.from_arrow(t.to_pyarrow())
dialect = "snowflake"
sql = ibis.to_sql(
grouped,
dialect=dialect,
)
sql