This document holds technical notes on how the dataclass behind GT interact.
import polars as pl
from great_tables import GT, exibble
Boxhead, Stub, and Summary Rows
lil_ex = pl.from_pandas(exibble).select("num", "row", "group").head(6)
gt = GT(lil_ex).grand_summary_rows(fns={"Total": pl.col("num").sum()})
Placeholder stub
|
num |
row |
group |
|
0.1111 |
row_1 |
grp_a |
|
2.222 |
row_2 |
grp_a |
|
33.33 |
row_3 |
grp_a |
|
444.4 |
row_4 |
grp_a |
|
5550.0 |
row_5 |
grp_b |
|
None |
row_6 |
grp_b |
Total |
6030.0631 |
--- |
--- |
Rowname stub
(gt
.tab_stub(rowname_col="row")
)
|
num |
group |
row_1 |
0.1111 |
grp_a |
row_2 |
2.222 |
grp_a |
row_3 |
33.33 |
grp_a |
row_4 |
444.4 |
grp_a |
row_5 |
5550.0 |
grp_b |
row_6 |
None |
grp_b |
Total |
6030.0631 |
--- |
Group stub
(gt
.tab_stub(groupname_col="group")
.tab_options(row_group_as_column=True)
)
|
num |
row |
grp_a |
0.1111 |
row_1 |
2.222 |
row_2 |
33.33 |
row_3 |
444.4 |
row_4 |
grp_b |
5550.0 |
row_5 |
None |
row_6 |
Total |
6030.0631 |
--- |
One more not shown above is if both rowname and groupnames are used in the stub, then the summary spans both those columns:
(gt.tab_stub(rowname_col="row", groupname_col="group").tab_options(row_group_as_column=True))
|
num |
grp_a |
row_1 |
0.1111 |
row_2 |
2.222 |
row_3 |
33.33 |
row_4 |
444.4 |
grp_b |
row_5 |
5550.0 |
row_6 |
None |
Total |
6030.0631 |