DataFrame.any(axis=0, bool_only=None, skipna=True, level=None, **kwargs) [source]
返回任何元素是否为真(可能在轴上)。
返回False
,除非在一个series中或沿着Dataframe
轴至少有一个元素为真或等效(例如,非零或非空)。
参数: | axis : {0 或 ‘index’, 1 或 ‘columns’, None}, 默认 0 指出哪个axis或哪个axis应该减少 0 / ‘index’ : 减少索引, 返回索引为原始列标签的Series。 1 / ‘columns’ : 减少列, 返回一个索引为原始索引的Series。 None:减少所有轴,返回一个标量。 bool_only : 只包含布尔列。如果没有, 将尝试使用一切, 然后只使用布尔数据。 不适用于Series。 skipna : 排除NA/null值。 如果整个行/列为NA 并且skipna为 那么结果将为 对于空行/列也是如此。 如果skipna是 那么NA就被当作 因为它们不等于零。 level : 默认 如果轴是一个多索引(层次结构), 则沿着特定的级别进行计数, 并折叠成一个Series。 **kwargs : 附加关键字没有效果,但是可以接受与NumPy兼容。 |
返回: | Series 或 DataFrame 如果指定了level,则返回DataFrame;否则,返回Series。 |
例如,
1)基本用法
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
})
# 检查每列是否有任何非零值
print(df.any())
2)沿行方向检查
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
})
# 检查每行是否有任何非零值
print(df.any(axis=1))
3)忽略缺失值
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
})
# 检查每列是否有任何非零值,忽略缺失值
print(df.any(skipna=True))
4)仅检查布尔类型列
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
})
# 创建包含布尔类型的 DataFrame
df_bool = pd.DataFrame({
'A': [True, False, True],
'B': [False, False, False],
'C': [True, True, False]
})
# 检查每列是否有任何 True 值
print(df_bool.any(bool_only=True))
5)多级索引
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
})
# 创建多级索引 DataFrame
df_multi = pd.DataFrame({
'A': [1, 2, 3, 0],
'B': [0, 0, 0, 0],
'C': [np.nan, np.nan, 3, 4]
}, index=pd.MultiIndex.from_tuples([
('x', 'one'), ('x', 'two'), ('y', 'one'), ('y', 'two')
]))
# 检查沿级别 0 是否有任何非零值
print(df.groupby(level=0).any())
6)Series 使用示例
对于Series输入,输出是一个标量,指示任何元素是否为True。
import pandas as pd
import numpy as np
# 示例1: 全部元素为 False
series1 = pd.Series([False, False])
print(series1.any())
# 输出: False
# 示例2: 存在 True 元素
series2 = pd.Series([True, False])
print(series2.any())
# 输出: True
# 示例3: 空 Series
series3 = pd.Series([], dtype=bool)
print(series3.any())
# 输出: False
# 示例4: 含有 NaN 的 Series
series4 = pd.Series([np.nan])
print(series4.any())
# 输出: False
# 示例5: 含有 NaN 的 Series,skipna=False
print(series4.any(skipna=False))
# 输出: True
7)DataFrame 使用示例
import pandas as pd
import numpy as np
# 创建第一个示例 DataFrame
df1 = pd.DataFrame({"A": [1, 2], "B": [0, 2], "C": [0, 0]})
print("DataFrame 1:")
print(df1)
print("\n每列是否至少包含一个True元素:")
print(df1.any())
print("\n")
# 创建第二个示例 DataFrame
df2 = pd.DataFrame({"A": [True, False], "B": [1, 2]})
print("DataFrame 2:")
print(df2)
print("\n对列进行聚合:")
print(df2.any(axis='columns'))
print("\n")
# 创建第三个示例 DataFrame
df3 = pd.DataFrame({"A": [True, False], "B": [1, 0]})
print("DataFrame 3:")
print(df3)
print("\n对列进行聚合:")
print(df3.any(axis='columns'))
print("\n")
# 使用axis=None聚合整个DataFrame
print("DataFrame 3的整体聚合:")
print(df3.any(axis=None))
print("\n")
# 空 DataFrame 的 any 是空的 Series
empty_df = pd.DataFrame([])
print("空 DataFrame:")
print(empty_df)
print("\n空 DataFrame 的 any:")
print(empty_df.any())