要按条件对Pandas列进行着色,可以使用Styler.applymap()
方法和一个自定义的着色函数。下面是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'Name': ['Tom', 'Nick', 'John', 'Amy'],
'Age': [20, 25, 30, 35],
'Score': [80, 90, 85, 75]}
df = pd.DataFrame(data)
# 自定义着色函数
def color_negative_red(value):
"""
将负值着色为红色
"""
if value < 0:
color = 'red'
else:
color = 'black'
return 'color: %s' % color
# 对Score列进行着色
styled_df = df.style.applymap(color_negative_red, subset=['Score'])
# 显示着色后的DataFrame
styled_df
在上述代码中,我们创建了一个示例DataFrame df
,包含Name
、Age
和Score
三列。然后,我们定义了一个名为color_negative_red
的自定义着色函数,该函数将负值着色为红色。
接下来,我们使用style.applymap()
方法将着色函数应用于Score
列,并将其存储在styled_df
中。最后,我们通过调用styled_df
来显示着色后的DataFrame。
请注意,style.applymap()
方法仅逐个元素地应用着色函数,因此该方法仅适用于DataFrame中的单个列。如果要同时应用多个列的着色规则,请使用style.apply()
方法。