看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在 pandas 中,你可以通过使用 Styler 类来为数据帧中的特定单元格设置样式。为了实现这一目的,首先需要定义一个样式函数,在该函数中对数据帧中需要设置样式的单元格进行修改。然后,可以使用 Styler 类的 apply 方法来应用该函数。
下面是一个示例,该示例使用了一个名为 highlight_cell 的样式函数,该函数在数据帧的第二行第二列的单元格上设置了红色背景样式:
import pandas as pd
def highlight_cell(data, color='yellow'):
attr = f'background-color: {color}'
data = data.copy().astype(str)
data.iloc[:, :] = ''
data.iloc[1, 1] = attr
return data
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
df
'''
A B C
0 1 4 7
1 2 5 8
2 3 6 9
'''
执行样式应用:
df.style.apply(highlight_cell, color='red', axis=None)
输出效果:
首先,我们导入了 pandas 库,然后定义了一个名为 highlight_cell 的样式函数。该函数接受一个数据帧作为参数,以及一个可选的颜色参数,默认为黄色。
该函数拷贝一个新的源数据,先将所有值修改为空字符串,再将指定位置的值修改为 css 样式,即返回单元格的样式字符串(如果单元格的值与数据帧的第二行第二列相同),否则返回空字符串。
我们再来看一个指定条件的例子:
import pandas as pd
df = pd.read_csv('https://gairuo.com/file/data/team.csv').head()
df
'''
name team Q1 Q2 Q3 Q4
0 Liver E 89 21 24 64
1 Arry C 36 37 37 57
2 Ack A 57 60 18 84
3 Eorge C 93 96 71 78
4 Oah D 65 49 61 86
'''
def highlight(x):
css = 'font-weight: bold; color:red;'
df1 = pd.DataFrame('', index=x.index, columns=x.columns)
df1.loc[df.Q1>df.Q2, 'Q2'] = css # 将需要指定样式的单元格修改
df1.iloc[1, 1] = css # 指定索引位置
return df1
df.style.apply(highlight, axis=None)
输出效果:
这段代码定义了一个名为 highlight 的函数,用于给 pandas 数据帧的某些单元格添加 HTML 样式。该函数的逻辑如下:
你掌握了吗?
(完)
更新时间:2024-08-18 16:11:56 标签:pandas python 样式