问:
pandas 的.pivot_table方法生成表,列标题与列值怎么对齐
答:
pandas中的pivot_table方法生成透视表时,列标题与列值默认左对齐,如果想要实现列标题与列值右对齐,可以通过以下几种方法:
1. 设置margins参数为True,会在表的末尾自动加上行/列小计,同时实现列标题和列值右对齐:
df.pivot_table(index='年份', columns='季度', values='销量', margins=True)
2. 设置margins_name参数,可以自定义新增的行/列小计的名称:
df.pivot_table(index='年份', columns='季度', values='销量', margins=True, margins_name='小计')
3. 设置aggfunc参数为len,则新增一列或一行count,实现右对齐:
df.pivot_table(index='年份', columns='季度', values='销量', aggfunc=len)
4. 设置display参数为True,则会在列标题下面显示列名,也能实现右对齐:
df.pivot_table(index='年份', columns='季度', values='销量' ,display=True)
5. 还可以设置style参数自定义样式,针对不同的层次右对齐:
styler = df.style.set_properties(**{'text-align': 'right'})
styler.format({('季度', ''): lambda x: '合计'})
6. 将pivot_table转为DataFrame后,也可以用样式设置右对齐。
综上,pandas pivot_table支持多种参数设置,可以灵活实现列标题与列值右对齐。