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
import ibis
from ibis import _
ibis.options.interactive = True
con = ibis.duckdb.connect()
t = con.read_parquet("s3://overturemaps-us-west-2/release/2024-09-18.0/theme=base/type=water/*")
t = t.filter(t.bbox.xmin >= -91.3994, t.bbox.xmax <= -89.3864, t.bbox.ymin >= 29.152, t.bbox.ymax <= 30.5161)