@@ -1814,7 +1814,7 @@ def set_sticky(
1814
1814
self ,
1815
1815
axis : Axis = 0 ,
1816
1816
pixel_size : int | None = None ,
1817
- levels : list [int ] | None = None ,
1817
+ levels : Level | list [Level ] | None = None ,
1818
1818
) -> Styler :
1819
1819
"""
1820
1820
Add CSS to permanently display the index or column headers in a scrolling frame.
@@ -1827,7 +1827,7 @@ def set_sticky(
1827
1827
Required to configure the width of index cells or the height of column
1828
1828
header cells when sticking a MultiIndex (or with a named Index).
1829
1829
Defaults to 75 and 25 respectively.
1830
- levels : list of int
1830
+ levels : int, str, list, optional
1831
1831
If ``axis`` is a MultiIndex the specific levels to stick. If ``None`` will
1832
1832
stick all levels.
1833
1833
@@ -1891,11 +1891,12 @@ def set_sticky(
1891
1891
else :
1892
1892
# handle the MultiIndex case
1893
1893
range_idx = list (range (obj .nlevels ))
1894
- levels = sorted (levels ) if levels else range_idx
1894
+ levels_ : list [int ] = refactor_levels (levels , obj ) if levels else range_idx
1895
+ levels_ = sorted (levels_ )
1895
1896
1896
1897
if axis == 1 :
1897
1898
styles = []
1898
- for i , level in enumerate (levels ):
1899
+ for i , level in enumerate (levels_ ):
1899
1900
styles .append (
1900
1901
{
1901
1902
"selector" : f"thead tr:nth-child({ level + 1 } ) th" ,
@@ -1920,7 +1921,7 @@ def set_sticky(
1920
1921
1921
1922
else :
1922
1923
styles = []
1923
- for i , level in enumerate (levels ):
1924
+ for i , level in enumerate (levels_ ):
1924
1925
props_ = props + (
1925
1926
f"left:{ i * pixel_size } px; "
1926
1927
f"min-width:{ pixel_size } px; "
0 commit comments