如何在具有多索引的pandas Dataframe 中将列标题样式从水平转换为垂直?

3yhwsihp  于 2023-05-12  发布在  其他
关注(0)|答案(2)|浏览(148)

下面是我的当前多索引列标题

我希望它能像这样陈列

bxjv4tth

bxjv4tth1#

您不能尝试修改数据框的HTML样式,请尝试调整hegiht属性:

styles = [dict(
     selector="th.col_heading.level1",
     props=[("transform", "rotate(270deg);"),
            ("height", "100px")]
)]
      
df.style.set_table_styles(styles)
rryofs0p

rryofs0p2#

可能无法回答最初的“multiindex”问题,但在使用table_style时,对于格式化标题行和显示精度很有用

def mdf_format_vertical_headers(df,height_str='100px',transform_str='rotate(-90deg)',precision=3):
"""Display a dataframe with vertical column headers. Returns a styler object - Only affects display so cant use .head() etc
rotate(-90deg) - rotates the text by 90 degrees. default. TBD why negative numbers
rotate(-80deg) - rotates the text by 80 degrees

"""
styles = [dict(selector="th", props=[('width', '40px')]),
          dict(selector="th.col_heading",
               props=[("writing-mode", "horizontal"),
                      ('transform',transform_str ), 
                      ('height', height_str),
                      ('vertical-align', 'top')])]
 
return (df.fillna('').style.set_table_styles(styles).format(precision=precision))

相关问题