pd.DataFrame.all
和pd.DataFrame.any
转换为bool
所有值,然后使用关键字 True
断言所有身份。只要我们接受非空列表和字符串的计算结果为 True 就可以了。然而,假设情况并非如此。
>>> pd.DataFrame([True, 'a']).all().item()
True # Wrong
解决方法是断言与 True
相等,但与 True 的比较听起来并不像 Python 那样。
>>> (pd.DataFrame([True, 'a']) == True).all().item()
False # Right
问题:我们可以断言 True
的身份吗?不使用== True
最佳答案
首先,我不建议这样做。请不要在数据框列中使用混合数据类型 - 这违背了数据框的目的,并且它们并不比列表更有用,也不比循环更高效。
现在,解决您的实际问题,spolier Alert,您无法克服==
。但您可以使用 eq
函数隐藏它。您可以使用
df.eq(True).all()
或者,
df.where(df.eq(True), False).all()
请注意
df.where(df.eq(True), False)
0
0 True
1 False
如果您出于任何其他原因想要将非“True”值转换为 False,您可能会发现这很有用。
关于python - 如何检查数据框中的所有值是否均为 True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49498466/