根据布尔列突出显示行
Highlight row based on boolean column
有一个数据框,我为其创建了布尔列 'Late Submission',其中 'True' 表示它迟到了,'False' 表示准时。
我想用红色突出显示 'True' 行,用绿色突出显示 'False' 行,但我似乎无法让它工作,因为我对 Python 还是很陌生。我试过下面的代码,知道为什么它不起作用吗?
def highlight_late(s):
if s['Late Submission'] == True:
return 'background-color: red'
elif s['Late Submission'] == False:
return 'background-color: green'
df7.style.apply(highlight_late, axis = 1)
给出的错误是:
Result has shape: (281556,)
Expected shape: (281556, 6)
提前致谢
我用这个简单的 df
来展示它是如何工作的,基于这个 pandas
doc
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': np.random.randint(0, 10, 10), 'b': np.random.randint(0, 10, 10), 'late': np.random.choice([0, 1], 10).astype(np.bool)})
这给了我们:
| | a | b | late |
|---:|----:|----:|:-------|
| 0 | 3 | 2 | False |
| 1 | 1 | 0 | False |
| 2 | 3 | 6 | False |
| 3 | 0 | 1 | True |
| 4 | 6 | 7 | True |
| 5 | 0 | 0 | False |
| 6 | 0 | 7 | False |
| 7 | 6 | 4 | True |
| 8 | 7 | 0 | True |
| 9 | 7 | 7 | False |
现在我们使用一个函数来应用样式:
def highlight_late(s):
return ['background-color: red' if s_ else 'background-color: green' for s_ in s]
然后:
df.style.apply(highlight_late, subset=['late'])
结果:
借用Albo的样本df。
如果要为整行着色,可以将代码调整为:
def highlight_late(s):
return ['background-color: red' if s['late'] else 'background-color: green' for s_ in s]
df.style.apply(highlight_late, axis=1)
哪个会给你:
有一个数据框,我为其创建了布尔列 'Late Submission',其中 'True' 表示它迟到了,'False' 表示准时。
我想用红色突出显示 'True' 行,用绿色突出显示 'False' 行,但我似乎无法让它工作,因为我对 Python 还是很陌生。我试过下面的代码,知道为什么它不起作用吗?
def highlight_late(s):
if s['Late Submission'] == True:
return 'background-color: red'
elif s['Late Submission'] == False:
return 'background-color: green'
df7.style.apply(highlight_late, axis = 1)
给出的错误是:
Result has shape: (281556,)
Expected shape: (281556, 6)
提前致谢
我用这个简单的 df
来展示它是如何工作的,基于这个 pandas
doc
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': np.random.randint(0, 10, 10), 'b': np.random.randint(0, 10, 10), 'late': np.random.choice([0, 1], 10).astype(np.bool)})
这给了我们:
| | a | b | late |
|---:|----:|----:|:-------|
| 0 | 3 | 2 | False |
| 1 | 1 | 0 | False |
| 2 | 3 | 6 | False |
| 3 | 0 | 1 | True |
| 4 | 6 | 7 | True |
| 5 | 0 | 0 | False |
| 6 | 0 | 7 | False |
| 7 | 6 | 4 | True |
| 8 | 7 | 0 | True |
| 9 | 7 | 7 | False |
现在我们使用一个函数来应用样式:
def highlight_late(s):
return ['background-color: red' if s_ else 'background-color: green' for s_ in s]
然后:
df.style.apply(highlight_late, subset=['late'])
结果:
借用Albo的样本df。 如果要为整行着色,可以将代码调整为:
def highlight_late(s):
return ['background-color: red' if s['late'] else 'background-color: green' for s_ in s]
df.style.apply(highlight_late, axis=1)
哪个会给你: