如何为 Pandas 样式器对象添加边框?

How to add borders to a Pandas styler object?

我有一个数据框df,如下:

Name Day
Bob Monday
John Thursday
Sam Friday
Bob Monday
Katie Sunday
Kyle Tuesday
Katie Saturday
Bob Wednesday
Katie Sunday
Sam Thursday
Joe Friday

根据名称列中名称出现的频率,以下代码突出显示整行:

cmap = {1: 'green', 2: 'yellow', 3: 'red'}
freq = df['Name'].map(df['Name'].value_counts())
colors = freq.map(cmap).radd('background-color: ')

df.style.apply(lambda s: colors)

然而,当我使用 .render() 将样式器对象转换为 html 以发送电子邮件时,table 中没有寄宿生。在将数据框转换为样式器对象然后再转换为 HTML table 时如何保持边界?

当我找到答案时,我几乎把问题打出来了,所以我想我会把它作为问答来做。

创建样式器对象时,一个接一个地串接样式效果很好。例如:

df.style.apply(lambda s: colors).set_table_styles(
    [{"selector": "", "props": [("border", "1px solid")]},
      {"selector": "tbody td", "props": [("border", "1px solid")]},
     {"selector": "th", "props": [("border", "1px solid")]}])

然后在 set_table_styles 中可以更改不同的参数来格式化边框。