python pandas 对表格样式的操作

官方文档:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.io.formats.style.Styler.apply.html#pandas.io.formats.style.Styler.apply

主要函数:

Styler.apply(self, func, axis=0, subset=None, **kwargs)

参数说明:

  1. func 处理数据的自定义函数,主要要返回一个与处理数据一样长的样式list。
  2. axis 轴,表示是按行0还是按列1进行数据处理,主要区别是在使用 max()等统计函数时会有不一样的结果。
  3. subset 需要处理的列,这是一个列名的list,指定列名后,只处理指定列的数据。
  4. **kwargs 是传递给 自定义函数func的其他参数。

简单应用

自定义函数func(将最大的数值的单元格标记为黄底红字)

def highlight_max(x):
  return  ['background-color: yellow; color: red' if v == x.max() else ''
                for v in x]

应用

df1=pd.DataFrame({'名字':['小绿','小白','小红','小明'],
                 '语文':[95,88,23,66],
                 '政治':[96,64,33,66],
                 '英语':[66,100,33,66]})
df2=pd.DataFrame({'名字':['小白','小绿','小红','小明'],
                  '英语':[98,95,94,67],
                  '篮板':[7,10,13,8],
                  '失误':[10,2,0,8]})
# 替换索引
df2 = df2.set_index('名字',  drop=True, inplace=False)
df1 = df1.set_index('名字',  drop=True, inplace=False)

# 合并df1与df2两个表
df3 = pd.concat([df1, df2],keys=['aaa','bbb'],axis=1,join='inner')
# 处理数据添加样式
df3 = df3.style.apply(highlight_max, subset=[('aaa', '英语'), ('bbb', '英语')])
# 保存数据到excel
df3.to_excel('a.xlsx')

ps:这里的subset参数之所以这么写,是因为df3是通过df1与df2合并得来的,其列明也是复合列名,使用 print(df3.index) 可以查看索引如下

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值