dataframe某列多条件改背景色
时间: 2023-09-08 12:08:53 浏览: 85
可以使用 `apply` 方法来实现这个功能。具体来说,你需要定义一个函数,根据输入的值返回不同的样式,然后使用 `apply` 方法将这个函数应用到 DataFrame 的某一列或子集上。下面是一个例子:
```python
import pandas as pd
# 定义标背景框色函数
def background_color(val):
if val < 60:
return 'background-color: red'
elif val < 80:
return 'background-color: yellow'
else:
return 'background-color: green'
# 创建 DataFrame
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'score1': [70, 55, 85, 90],
'score2': [80, 60, 70, 95]
})
# 将函数应用到 score1 列上
df.style.apply(lambda x: [background_color(x) if x.name == 'score1' and v < 80 else '' for v in x], axis=0)
```
在这个例子中,我们定义了一个名为 `background_color` 的函数,根据输入的值返回不同的 CSS 样式。然后,我们将这个函数应用到 DataFrame 的 `score1` 列上,只有当列名为 `score1` 且值小于 80 时才会应用这个函数。最后,我们使用 `apply` 方法将这个函数应用到 DataFrame 上,在单元格中显示不同的背景颜色。
阅读全文