pandas DataFrame风格,突出了nan

时间:2017-03-05 18:35:51

标签: python pandas numpy

说这个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

如何查看nan内的哪个元素df.applymap? (即,不使用df.isnull

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

df.style.highlight_null()

但它改变了背景颜色,而我想要" nan"以红色显示。

所以我需要自己使用applymap

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

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

2 个答案:

答案 0 :(得分:3)

您可以使用pd.isnull()来处理缺失值检查的更多类型:

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

enter image description here

答案 1 :(得分:0)

您还可以使用以下事实:浮点̀NaN`的值为are not equal to themselves

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Bundle.putString(java.lang.String, java.lang.String)' on a null object reference

at my.edu.fsktm.um.finalproject.Fragment.ReviewFragment$1.onItemClick(ReviewFragment.java:61)
at my.edu.fsktm.um.finalproject.ForumTitle.ForumAdapter$ForumHolder$1.onClick(ForumAdapter.java:56)