.any()和.any(1)有什么区别?

时间:2019-01-12 10:08:06

标签: python python-3.x pandas

我多次遇到.any()方法。我多次使用它来检查数据帧中是否包含特定的字符串。在这种情况下,它会根据字符串是否与单元格的值匹配,返回n个数组/数据帧(取决于我希望如何构造)True和Falses。我还找到了.any(1)方法,但不确定如何或在哪种情况下应该使用它。

2 个答案:

答案 0 :(得分:1)

.any(1).any(axis=1)相同,这意味着按行而不是按列查看。

使用此示例数据框:

   x1  x2  x3
0   1   1   0
1   0   0   0
2   1   0   0

查看不同的结果:

import pandas as pd

df = pd.read_csv('bool.csv')

print(df.any())

>>>
x1     True
x2     True
x3    False
dtype: bool

因此.any()检查列中的任何值是否为True

print(df.any(1))

>>>
0     True
1    False
2     True
dtype: bool

所以.any(1)检查一行中是否有任何值

答案 1 :(得分:0)

文档是自解释性的,但是出于疑问。

这是Series和Dataframe方法any()。它检查调用方对象(Dataframe或系列)中的任何值是否都不为0,并为此返回True。如果所有值均为0,则返回False。

注意:但是,即使调用方方法包含Nan,也不会将其视为0。

示例DataFrame:

>>> df = pd.DataFrame({"A": [1, 2], "B": [0, 2], "C": [0, 0]})
>>> df
   A  B  C
0  1  0  0
1  2  2  0

>>> df.any()
A     True
B     True
C    False
dtype: bool

>>> df.any(axis='columns')
0    True
1    True
dtype: bool

逐列调用df.any()

>>> df.any(axis=1)
0    True
1    True
dtype: bool
  

any为真,如果至少一个为真

     

any为False

这是Guido van Rossum的Blog Documentation about any() & all()