Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Pandas中使用.notnull()时,正确的语法是什么?_Python_Pandas_Dataframe_Null - Fatal编程技术网

Python 在Pandas中使用.notnull()时,正确的语法是什么?

Python 在Pandas中使用.notnull()时,正确的语法是什么?,python,pandas,dataframe,null,Python,Pandas,Dataframe,Null,我想在数据帧的几列上使用.notnull(),以消除包含“NaN”值的行 假设我有以下df: A B C 0 1 1 1 1 1 NaN 1 2 1 NaN NaN 3 NaN 1 1 我试图使用这种语法,但它不起作用?你知道我做错了什么吗 df[[df.A.notnull()],[df.B.notnull()],[df.C.notnull()]] 我得到这个错误: TypeError: 'Series' objects are mutable, thus t

我想在数据帧的几列上使用
.notnull()
,以消除包含“NaN”值的行

假设我有以下
df

  A   B   C
0 1   1   1
1 1   NaN 1
2 1   NaN NaN
3 NaN 1   1
我试图使用这种语法,但它不起作用?你知道我做错了什么吗

df[[df.A.notnull()],[df.B.notnull()],[df.C.notnull()]]
我得到这个错误:

TypeError: 'Series' objects are mutable, thus they cannot be hashed
我应该做什么来获得以下输出

  A   B   C
0 1   1   1

有什么想法吗?

您可以首先通过
df[['A','B','C']]
选择列的子集,然后应用并指定掩码中的值是否为
True

print (df[['A','B','C']].notnull())
       A      B      C
0   True   True   True
1   True  False   True
2   True  False  False
3  False   True   True

print (df[['A','B','C']].notnull().all(1))
0     True
1    False
2    False
3    False
dtype: bool

print (df[df[['A','B','C']].notnull().all(1)])
     A    B    C
0  1.0  1.0  1.0
另一个解决方案是通过以下方式进行评论:

什么是相同的:

print (df.dropna(subset=['A', 'B', 'C'], how='any'))

和表示删除所有行,其中至少有一个
NaN
值。

您可以通过将多个条件与
&
运算符组合来应用它们(这不仅适用于
notnull()
函数)

或者,您可以删除包含
NaN
的所有列。不会修改原始数据帧,而是返回一个副本

df.dropna()

df.dropna()

谢谢,这很有意义。。。那么
.all()
这是做什么的呢?它与
.any()
有什么不同?
all
表示检查所有值是否为真,
any
表示检查至少一个值是否为真。如果使用
all(1)
any(1)
则表示检查行,因为它与
all(axis=1)
any(axis=1)
相同,您的代码很棒!非常感谢我的朋友很高兴能帮助你!天气真好!您只需执行
df.dropna(子集=['A','B','C'])
print (df.dropna(subset=['A', 'B', 'C'], how='any'))
df[(df.A.notnull() & df.B.notnull() & df.C.notnull())]
     A    B    C
0  1.0  1.0  1.0