这个问题在这里已经有答案了:
什么是真假?它与真与假有何不同(7个答案)
5小时前关门了。
我有以下Dataframe:
import pandas as pd
numbers = {'set_of_numbers': [1,2,3,4,5,6,7,8,9,10]}
df = pd.DataFrame(numbers,columns=['set_of_numbers'])
df['equal_or_lower_than_4?'] = df['set_of_numbers'].apply(lambda x: 'True' if x <= 4 else 'False')
print (df)
set_of_numbers equal_or_lower_than_4?
0 1 True
1 2 True
2 3 True
3 4 True
4 5 False
5 6 False
6 7 False
7 8 False
8 9 False
9 10 False
当我尝试对最后一列应用all()函数时,它返回true,尽管有些值是false
all(df['equal_or_lower_than_4?'])
# Out[29]:
# True
1条答案
按热度按时间ddrv8njm1#
您可以使用以下方法简化代码:
df['set_of_numbers'] <= 4
.为什么会这样
all(df['equal_or_lower_than_4?'])
返回true?原因是all()
定义为:如果iterable中的所有项都为true,则all()函数返回true,否则返回false。
如果iterable对象为空,则all()函数也返回true。
如果不是空的,则.series等于true。所以all()只检查:all([true]),因为只有一个非空pd.series作为参数提供。要检查其中的每个元素是否为真,可以使用np.sum()或all(df['equal\u or\u lower\u than\u 4?'].tolist())