我正在使用python练习数据集

时间:2018-08-23 07:01:47

标签: python pandas

这行代码是什么意思?

train_data.isnull().any() 

我不明白

2 个答案:

答案 0 :(得分:2)

如果您有一个名为train_data的df,如下所示:

train_data = pd.DataFrame( {'a':[1,2,3], 'b':[2,3,4]})

train_data.isnull().any()告诉您在任何列中是否有nan元素:

a    False
b    False
dtype: bool

为此df:train_data = pd.DataFrame( {'a':[np.nan,2,3], 'b':[2,3,4]}) 您将拥有:

a     True
b    False
dtype: bool

any()用于了解该列的元素是否为np.nan。对于此df:

train_data = pd.DataFrame( {'a':[np.nan,5,np.nan], 'b':[2,3,4]}) 

train_data.isnull()将具有每个元素的布尔值作为输出:

       a      b
0   True  False
1  False  False
2   True  False

答案 1 :(得分:1)

isnull为每个值返回一个布尔值语句,any进入每一列以检查是否为true,然后继续执行any,另一个any将检查是否为true

如果您不知道,isnull将检查每个值的numpy nan

另一方面,any可以有一个axis参数,如果为1,则表示每一行,否则为否。

示例(也请阅读注释):

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame({'a':[np.nan,2,3], 'b':[2,np.nan,4]})
>>> df.isnull() # for each value
       a      b
0   True  False
1  False   True
2  False  False
>>> df.isnull().any() # for each column
a    True
b    True
dtype: bool
>>> df.isnull().any(axis=1) # for each row
0     True
1     True
2    False
dtype: bool
>>> df.isnull().any().any() # for any value 
True