dataframe 2列数据如果不一致的标底色橙色
时间: 2024-03-16 15:43:37 浏览: 69
抱歉,我的回答有误。使用 `apply` 方法将会将函数应用于每一行数据,而不是每一个单元格。正确的方法是使用 `applymap` 方法,将函数应用到每一个单元格上,如下所示:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [1, 2, 5, 4],
})
# 标记不一致的单元格为橙色
def highlight_diff(x):
if x['A'] != x['B']:
return 'background-color: orange'
else:
return ''
df.style.applymap(highlight_diff, subset=pd.IndexSlice[:, ['A', 'B']])
```
这段代码中,我们首先创建了一个示例 DataFrame,然后定义了一个名为 `highlight_diff` 的函数,用于判断两列数据是否一致,并返回对应的样式。最后,我们使用 `applymap` 方法将这个函数应用到 DataFrame 的所有单元格中,并指定只对列名为 `A` 和 `B` 的列进行处理。
如果您需要将标记后的结果输出到 HTML 文件或者 Jupyter Notebook 中,可以使用 `to_html` 或者 `render` 方法:
```python
# 输出到 HTML 文件
with open('output.html', 'w') as f:
f.write(df.style.applymap(highlight_diff, subset=pd.IndexSlice[:, ['A', 'B']]).render())
# 在 Jupyter Notebook 中显示
df.style.applymap(highlight_diff, subset=pd.IndexSlice[:, ['A', 'B']]).render()
```
阅读全文