Python expndtw-1.any().all()
我不断得到Python expndtw-1.any().all(),python,pandas,Python,Pandas,我不断得到ValueError:序列的真值是模糊的。使用pandas尝试布尔测试时,请使用a.empty、a.bool()、a.item()、a.any()或a.all()。我不明白它说了什么,所以决定试着弄明白 然而,在这一点上,我完全感到困惑 在这里,我创建了一个包含两个变量的数据框架,它们之间共享一个数据点(3): 现在我尝试全部(x小于y),我将其转换为“x的所有值都小于y”,我得到了一个没有意义的答案 In [79]: if all(df['x'] < df['y']):
ValueError:序列的真值是模糊的。使用pandas尝试布尔测试时,请使用a.empty、a.bool()、a.item()、a.any()或a.all()。我不明白它说了什么,所以决定试着弄明白
然而,在这一点上,我完全感到困惑
在这里,我创建了一个包含两个变量的数据框架,它们之间共享一个数据点(3):
现在我尝试全部(x小于y),我将其转换为“x的所有值都小于y”,我得到了一个没有意义的答案
In [79]:
if all(df['x'] < df['y']):
print('True')
else:
print('False')
True
In [77]:
if any(df['x'] < df['y']):
print('True')
else:
print('False')
False
[79]中的
如果全部(df['x']
接下来我尝试了any(x小于y),我把它翻译成“x小于y的任何值”,我得到了另一个没有意义的答案
In [79]:
if all(df['x'] < df['y']):
print('True')
else:
print('False')
True
In [77]:
if any(df['x'] < df['y']):
print('True')
else:
print('False')
False
[77]中的
如果有(df['x']
简而言之:any()和all()实际上做什么?熊猫建议您在构建函数中使用系列方法any()
和all()
,而不是Python
我不太理解您的奇怪输出的来源(在Python 2.7和Pandas 0.17.0中,我都能理解这两种情况)。但是试试下面的方法,它应该会起作用。这使用Series.any()
和Series.all()
方法
import pandas as pd
df = pd.DataFrame()
df['x'] = [1,2,3]
df['y'] = [3,4,5]
print (df['x'] < df['y']).all() # more pythonic way of
print (df['x'] < df['y']).any() # doing the same thing
要比较两个pd.DataFrame
对象的内容和结构相等性,可以使用:
将熊猫作为pd导入
定义是否相等(df:pd.DataFrame,df2:pd.DataFrame)->bool:
返回df.equals(df2)和(df.all()==df2.all()).all()
只看一下df['x']
。它做了一个基本的比较;i、 这是一系列的
[df['x'][0]all(df['x']
是真的,因为该系列中的所有元素都是真的。我无法重现您观察到的错误。对我来说,如果有(df['x']
会发出True
。你可能在中间语句中做了一些奇怪的事情;尝试打印(df['x'],df['y'],df['x']你能发布一些示例代码来生成你原来的'序列的真值是不明确的'
错误吗?我想你正在混淆内置的any()
和all()
函数和a.any()
,a.all()
Numpy数组的方法/Python系列。顺便说一句,if的一种更具Python风格的方法是执行print any(df['x']
。下面是产生原始错误的代码:if df['x']