条件格式 pandas
Conditional formatting pandas
如何为 C 列将低于 1 的单元格着色为绿色,将介于 0 和 0.5 之间的单元格着色为黄色。
当前输出:
A B C
0 TT WW -5
1 AA WW 0
2 DD WW 5
期望:
我的以下代码只是写入 Excel,没有颜色变化。
import pandas as pd
import numpy as np
df = pd.read_excel("C:\13\13\13.xlsx")
def highlight_vals(val, min=-1111, max=1, color='green'):
if min < val < max:
return 'background-color: %s' % color
else:
return ''
df.style.applymap(highlight_vals, subset=['C'])
def highlight_vals(val, min=0, max=0.5, color='yellow'):
if min < val < max:
return 'background-color: %s' % color
else:
return ''
df.style.applymap(highlight_vals, subset=['C'])
writer = pd.ExcelWriter("C:\13\13\zz.xlsx")
df.to_excel(writer, startrow=0, startcol=0, index = False)
writer.save()
这应该有效:
import pandas as pd
import numpy as np
df = pd.read_excel("C:\13\13\13.xlsx")
def highlight_vals(val, min=-1111, max=1, color='green'):
if min <= val <= max:
return 'background-color: %s' % color
else:
return ''
style_1 = df.style.applymap(highlight_vals, subset=['C'])
def highlight_vals(val, min=0, max=0.5, color='yellow'):
if min <= val <= max:
return 'background-color: %s' % color
else:
return ''
style_2 = df.style.applymap(highlight_vals, subset=['C'])
style_1.use(style_2.export())
writer = pd.ExcelWriter("C:\13\13\zz.xlsx")
style_1.to_excel(writer, startrow=0, startcol=0, index = False)
writer.save()
我保留了两个 Styler
对象,将一个对象应用到另一个对象上并将生成的对象保存到 Excel 而不是数据帧。另请注意,我已修复您的条件。否则,你不会因为min < val
而得到黄色
如何为 C 列将低于 1 的单元格着色为绿色,将介于 0 和 0.5 之间的单元格着色为黄色。
当前输出:
A B C
0 TT WW -5
1 AA WW 0
2 DD WW 5
期望:
我的以下代码只是写入 Excel,没有颜色变化。
import pandas as pd
import numpy as np
df = pd.read_excel("C:\13\13\13.xlsx")
def highlight_vals(val, min=-1111, max=1, color='green'):
if min < val < max:
return 'background-color: %s' % color
else:
return ''
df.style.applymap(highlight_vals, subset=['C'])
def highlight_vals(val, min=0, max=0.5, color='yellow'):
if min < val < max:
return 'background-color: %s' % color
else:
return ''
df.style.applymap(highlight_vals, subset=['C'])
writer = pd.ExcelWriter("C:\13\13\zz.xlsx")
df.to_excel(writer, startrow=0, startcol=0, index = False)
writer.save()
这应该有效:
import pandas as pd
import numpy as np
df = pd.read_excel("C:\13\13\13.xlsx")
def highlight_vals(val, min=-1111, max=1, color='green'):
if min <= val <= max:
return 'background-color: %s' % color
else:
return ''
style_1 = df.style.applymap(highlight_vals, subset=['C'])
def highlight_vals(val, min=0, max=0.5, color='yellow'):
if min <= val <= max:
return 'background-color: %s' % color
else:
return ''
style_2 = df.style.applymap(highlight_vals, subset=['C'])
style_1.use(style_2.export())
writer = pd.ExcelWriter("C:\13\13\zz.xlsx")
style_1.to_excel(writer, startrow=0, startcol=0, index = False)
writer.save()
我保留了两个 Styler
对象,将一个对象应用到另一个对象上并将生成的对象保存到 Excel 而不是数据帧。另请注意,我已修复您的条件。否则,你不会因为min < val