You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Pandas .any()方法会按列返回单个布尔值?

为什么Pandas的.any()方法会按列返回单个布尔值?

嘿,这问题问得很到位!让我给你掰扯清楚背后的逻辑~

首先得明确Pandas中.any()方法的默认行为:
.any()的作用是检查指定轴上是否存在至少一个True值,它的默认参数是axis=0——这个参数直接决定了它的检查方向:

  • axis=0:按列进行检查(垂直方向),对每一列的所有行做判断,只要该列里有一个True,就返回True,否则返回False
  • axis=1:按行进行检查(水平方向),对每一行的所有列做判断,只要该行里有一个True,就返回True,否则返回False

结合你的实例拆解:

先看你的代码和输出:

print("Data : ", df)
print("Value: ", (df < 0).any())

输出:

Data : 
          1         2          3
0  0.000000       NaN        NaN
1 11.874342       NaN        NaN
2  2.236068       NaN        NaN
3 12.041595  11.313708        NaN
4  2.236068 -11.400000  12.165525
Value: 
1    False
2     True
3    False
dtype: bool
  1. 第一步执行df < 0,会生成一个和原DataFrame形状一致的布尔表:只有第4行第2列的位置是True(因为-11.4<0),其他位置都是False(包括NaN,因为NaN和任何值比较结果都是False)
  2. 接着调用.any()(默认axis=0),按列逐一检查:
    • 列1:所有值都是非负数,没有True,返回False
    • 列2:存在一个True,返回True
    • 列3:所有值都是非负数,返回False

如果想按行返回结果怎么办?

只需把参数改成axis=1即可:

print("Value by row: ", (df < 0).any(axis=1))

对应的输出会是每行的布尔值——只有第4行是True,其余行都是False。

内容的提问来源于stack exchange,提问作者Ribery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:21:06