用这个 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 '')
