Skip to main content
 首页 » 编程设计

python之pandas DataFrame风格,高亮nan的

2025年05月04日14del

用这个 DataFrame 说

df = pd.DataFrame({'name' : ['A','B'], 'date' : pd.to_datetime(['2000-01-01','2000-01-02']), 'value' : [np.nan, 1]}) 
 
        date name  value 
0 2000-01-01    A    NaN 
1 2000-01-02    B    1.0 

如何检查 df.applymap 中的哪个元素是 nan? (即,不使用 df.isnull)

问题出在我想使用 pandas html 样式的地方。我们有内置的 nan 突出显示

df.style.highlight_null() 

但它改变了背景颜色,我希望“nan”显示为红色。

所以我需要自己用applymap

df.style.applymap(lambda x: 'color: red' if isnan(x) else '') 

但是当它也可以是日期时间/字符串时,我如何检查一个值是否为 nan? np.isnan 将在字符串上失败。 np.isreal(x) 和 np.isnan(x) 也在日期时间上失败。

请您参考如下方法:

您可以使用 pd.isnull() ,它处理范围更广的缺失值检查类型:

import pandas as pd 
df.style.applymap(lambda x: 'color: red' if pd.isnull(x) else '')