pandas.io.formats.style.Styler.hide — pandas 2.2.3 documentation (original) (raw)
Styler.hide(subset=None, axis=0, level=None, names=False)[source]#
Hide the entire index / column headers, or specific rows / columns from display.
Added in version 1.4.0.
Parameters:
subsetlabel, array-like, IndexSlice, optional
A valid 1d input or single key along the axis withinDataFrame.loc[, :] or DataFrame.loc[:, ] depending upon axis
, to limit data
to select hidden rows / columns.
axis{“index”, 0, “columns”, 1}
Apply to the index or columns.
levelint, str, list
The level(s) to hide in a MultiIndex if hiding the entire index / column headers. Cannot be used simultaneously with subset
.
namesbool
Whether to hide the level name(s) of the index / columns headers in the case it (or at least one the levels) remains visible.
Returns:
Styler
Notes
Warning
This method only works with the output methods to_html
, to_string
and to_latex
.
Other output methods, including to_excel
, ignore this hiding method and will display all data.
This method has multiple functionality depending upon the combination of the subset
, level
and names
arguments (see examples). Theaxis
argument is used only to control whether the method is applied to row or column headers:
Argument combinations#
subset | level | names | Effect |
---|---|---|---|
None | None | False | The axis-Index is hidden entirely. |
None | None | True | Only the axis-Index names are hidden. |
None | Int, Str, List | False | Specified axis-MultiIndex levels are hidden entirely. |
None | Int, Str, List | True | Specified axis-MultiIndex levels are hidden entirely and the names of remaining axis-MultiIndex levels. |
Subset | None | False | The specified data rows/columns are hidden, but the axis-Index itself, and names, remain unchanged. |
Subset | None | True | The specified data rows/columns and axis-Index names are hidden, but the axis-Index itself remains unchanged. |
Subset | Int, Str, List | Boolean | ValueError: cannot supply subset and level simultaneously. |
Note this method only hides the identified elements so can be chained to hide multiple elements in sequence.
Examples
Simple application hiding specific rows:
df = pd.DataFrame([[1,2], [3,4], [5,6]], index=["a", "b", "c"]) df.style.hide(["a", "b"])
0 1 c 5 6
Hide the index and retain the data values:
midx = pd.MultiIndex.from_product([["x", "y"], ["a", "b", "c"]]) df = pd.DataFrame(np.random.randn(6,6), index=midx, columns=midx) df.style.format("{:.1f}").hide()
x y a b c a b c 0.1 0.0 0.4 1.3 0.6 -1.4 0.7 1.0 1.3 1.5 -0.0 -0.2 1.4 -0.8 1.6 -0.2 -0.4 -0.3 0.4 1.0 -0.2 -0.8 -1.2 1.1 -0.6 1.2 1.8 1.9 0.3 0.3 0.8 0.5 -0.3 1.2 2.2 -0.8
Hide specific rows in a MultiIndex but retain the index:
df.style.format("{:.1f}").hide(subset=(slice(None), ["a", "c"])) ...
x y a b c a b c x b 0.7 1.0 1.3 1.5 -0.0 -0.2 y b -0.6 1.2 1.8 1.9 0.3 0.3
Hide specific rows and the index through chaining:
df.style.format("{:.1f}").hide(subset=(slice(None), ["a", "c"])).hide() ...
x y a b c a b c 0.7 1.0 1.3 1.5 -0.0 -0.2 -0.6 1.2 1.8 1.9 0.3 0.3
Hide a specific level:
df.style.format("{:,.1f}").hide(level=1)
x y a b c a b c x 0.1 0.0 0.4 1.3 0.6 -1.4 0.7 1.0 1.3 1.5 -0.0 -0.2 1.4 -0.8 1.6 -0.2 -0.4 -0.3 y 0.4 1.0 -0.2 -0.8 -1.2 1.1 -0.6 1.2 1.8 1.9 0.3 0.3 0.8 0.5 -0.3 1.2 2.2 -0.8
Hiding just the index level names:
df.index.names = ["lev0", "lev1"] df.style.format("{:,.1f}").hide(names=True)
x y a b c a b c x a 0.1 0.0 0.4 1.3 0.6 -1.4 b 0.7 1.0 1.3 1.5 -0.0 -0.2 c 1.4 -0.8 1.6 -0.2 -0.4 -0.3 y a 0.4 1.0 -0.2 -0.8 -1.2 1.1 b -0.6 1.2 1.8 1.9 0.3 0.3 c 0.8 0.5 -0.3 1.2 2.2 -0.8
Examples all produce equivalently transposed effects with axis="columns"
.