使用 pandas 样式函数更改多级索引字体
change multi level index fonts with pandas style function
我想制作一些带有 multi-level 索引(cross-tabulated 跨多个变量)的漂亮表格。使用下面的数据,place、band 和 status 的索引相当大,如果我用 pandas 样式函数打印它。有没有办法更改 size/colour/font of multi-level 标题?非常感谢
df1 = pd.DataFrame(data={'id': [1,2,3,4,5,6,7,8,9,10], 'place': [1,1,2,2,2,1,1,2,1,1], 'band': [1,2,3,3,3,2,1,2,3,1], 'status': [1,2,2,1,1,1,1,2,1,2]})
d1={1: 'north', 2: 'south'}
d2={1: '10-20', 2: '30-40', 3: '20-30'}
d3={1: 'green', 2: 'red'}
df1['place']=df1['place'].map(d1).fillna('Other')
df1['band']=df1['band'].map(d2).fillna('Other')
df1['status']=df1['status'].map(d3).fillna('Other')
tab = pd.crosstab(df1.band, [df1.place, df1.status]).apply(lambda r: r/r.sum(), axis=1).round(2)
tab.style
您不能修饰 multi-index 中的单个索引,但您可以对批处理采用以下方法。
th_css = [
{
"selector": "th",
"props": [
("background-color", "#48d1cc"),
("color", "white"),
("border", "1px solid #fdf5e6"),
("font-size", "16px"),
],
},
]
style = tab.style
style = style.set_precision(2).set_table_styles(th_css)
style
我想制作一些带有 multi-level 索引(cross-tabulated 跨多个变量)的漂亮表格。使用下面的数据,place、band 和 status 的索引相当大,如果我用 pandas 样式函数打印它。有没有办法更改 size/colour/font of multi-level 标题?非常感谢
df1 = pd.DataFrame(data={'id': [1,2,3,4,5,6,7,8,9,10], 'place': [1,1,2,2,2,1,1,2,1,1], 'band': [1,2,3,3,3,2,1,2,3,1], 'status': [1,2,2,1,1,1,1,2,1,2]})
d1={1: 'north', 2: 'south'}
d2={1: '10-20', 2: '30-40', 3: '20-30'}
d3={1: 'green', 2: 'red'}
df1['place']=df1['place'].map(d1).fillna('Other')
df1['band']=df1['band'].map(d2).fillna('Other')
df1['status']=df1['status'].map(d3).fillna('Other')
tab = pd.crosstab(df1.band, [df1.place, df1.status]).apply(lambda r: r/r.sum(), axis=1).round(2)
tab.style
您不能修饰 multi-index 中的单个索引,但您可以对批处理采用以下方法。
th_css = [
{
"selector": "th",
"props": [
("background-color", "#48d1cc"),
("color", "white"),
("border", "1px solid #fdf5e6"),
("font-size", "16px"),
],
},
]
style = tab.style
style = style.set_precision(2).set_table_styles(th_css)
style