pandas.io.formats.style.Styler.hide#
- 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 within DataFrame.loc[<subset>, :] or DataFrame.loc[:, <subset>] depending upon
axis
, to limitdata
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
andto_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
andnames
arguments (see examples). Theaxis
argument is used only to control whether the method is applied to row or column headers:# 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
andlevel
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"
.