pandas.io.formats.style.Styler.hide_index

Styler.hide_index(subset=None, level=None, names=False)[source]

Hide the entire index, or specific keys in the index from rendering.

This method has dual functionality:

  • if subset is None then the entire index, or specified levels, will be hidden whilst displaying all data-rows.

  • if a subset is given then those specific rows will be hidden whilst the index itself remains visible.

Changed in version 1.3.0.

Parameters
subsetlabel, array-like, IndexSlice, optional

A valid 1d input or single key along the index axis within DataFrame.loc[<subset>, :], to limit data to before applying the function.

levelint, str, list

The level(s) to hide in a MultiIndex if hiding the entire index. Cannot be used simultaneously with subset.

New in version 1.4.0.

namesbool

Whether to hide the index name(s), in the case the index or part of it remains visible.

New in version 1.4.0.

Returns
selfStyler

See also

Styler.hide_columns

Hide the entire column headers row, or specific columns.

Examples

Simple application hiding specific rows:

>>> df = pd.DataFrame([[1,2], [3,4], [5,6]], index=["a", "b", "c"])
>>> df.style.hide_index(["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_index()  
                 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 but retain the index:

>>> df.style.format("{:.1f}").hide_index(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:

>>> df.style.format("{:.1f}").hide_index(
...     subset=(slice(None), ["a", "c"])).hide_index()  
                 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_index(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_index(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