微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么any和pd.any返回不同的值?

如何解决为什么any和pd.any返回不同的值?

我最近发现内置函数any()对熊猫数据框不起作用。

import pandas as pd
data = pd.DataFrame([True,False])

print("base: " + str(any(data)))
print("pandas: " + str(data.any()))

结果:

base: False
pandas: 0    True
dtype: bool

有人可以解释这种行为背后的逻辑吗?

解决方法

遍历数据框就是遍历其列标签,例如e。 g。

In[3]: df = pd.DataFrame({"col_1": [1,2],"col_2": [3,4]})
In[4]: df
   col_1  col_2
0      1      3
1      2      4
In[5]: for i in df:
  ...:     print(i)
col_1
col_2

对于只有一列带有默认标签0(它是 number 0,而不是字符串'0')的情况,您获得了

any(data)

any([0])

依次为

any([False])

False

,

在文档中查找any(),它说:

any(iterable)如果iterable的任何元素为true,则返回True。如果iterable为空,则返回False。等效于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

如果您这样做:

for element in data:
    print(element)

它将显示0。

如果您执行print(list(data)),也会得到[0]-即具有一个元素的列表-0。

因此,当您遍历数据框本身(而不是行)时,您遍历列标签,在这种情况下,您只会得到一个0,当您执行False时,该引线将被解释为any(data)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?