當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas DataFrame any方法用法及代碼示例


Pandas any(~) 方法掃描 DataFrame 的每一行或每一列,如果行/列包含至少一個非零值或布爾值 True ,則為該行/列返回 True

注意

在 Pandas 中。布爾值 True 相當於 1 ,而 False 相當於 0

參數

1.axis | intstring | optional

是否掃描源DataFrame的每一行或每一列:

說明

返回類型

0"index"

掃描每一列

Series

1"columns"

掃描每一行

Series

None

掃描整個DataFrame

Boolean

默認情況下,axis=0

2. bool_only | boolean | optional

  • 如果 True ,則僅掃描布爾列。

  • 如果 False ,則將掃描所有列。

默認情況下,bool_only=False

3. skipna | boolean | optional

  • 如果 TrueNaN 將被視為 False

  • 如果 False ,則 NaN 將被視為 True

默認情況下,skipna=True

4. level | intstring | optional

目標水平。僅當您的 DataFrame 是多索引時,這才有意義。

返回值

返回類型取決於axis

  • 如果 axis=None ,則返回單個布爾值。

  • 否則,返回一係列布爾值。

例子

考慮以下 DataFrame :

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



   A  B  C
0  2  1  0
1  0  0  0
2  1  0  0

逐列掃描

按列掃描是否存在非零值:

df.any()   # or explicitly set axis=0



A     True
B     True
C    False
dtype: bool

在此,請注意以下事項:

  • AB 列中至少有一個非零值,因此為這些列返回 True

  • axis != None 以來,返回類型為 Series

逐行掃描

僅供您參考,我們再次在此顯示df

df



   A  B  C
0  2  1  0
1  0  0  0
2  1  0  0

要按行掃描,請設置 axis=1 是否存在非零值:

df.any(axis=1)   # returns a Series



0     True
1    False
2     True
dtype: bool

掃描整個DataFrame

要掃描整個 DataFrame 是否存在非零值,請設置 axis=None

df.any(axis=None)



True

僅掃描布爾列

考慮以下 DataFrame :

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



   A  B      C
0  2  True   0
1  0  False  0

要僅掃描包含布爾值的列,請設置 bool_only=True

df.any(bool_only=True)



B    True
dtype: bool

請注意如何僅考慮列 B,因為它是唯一類型為 boolean 的列。

考慮缺失值

默認情況下, skipna=True ,這意味著將跳過缺失值(視為 0False )。

作為示例,請考慮以下 DataFrame:

df = pd.DataFrame({"A": [pd.np.nan, 0]})
df



   A
0  NaN
1  0.0

調用 any() 給出:

df.any()    # or skipna=True



A    False
dtype: bool

在這裏,我們得到 False ,因為跳過了 NaNA 列中的所有值都是 0

相反,設置 skipna=False 會將 NaN 視為 True

df.any(skipna=False)



A    True
dtype: bool

由於我們現在 A 列中至少有一個非零值,因此返回 True

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | any method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。