如何检查col1
下的所有值是否满足> 2
等条件?
import pandas as pd
d = [
{'col1': 3, 'col2': 'wasteful'},
{'col1': 0, 'col2': 'hardly'},
]
df = pd.DataFrame(d)
我可以去
if all(col1 > 2 for i, col1, col2 in df.itertuples()):
#do stuff
但更具可读性,更快和/或内存占用方式更少?
答案 0 :(得分:4)
我认为您需要创建布尔掩码然后all
来检查是否所有True
s:
print (df['col1'] > 2)
0 True
1 False
Name: col1, dtype: bool
print ((df['col1'] > 2).all())
False
答案 1 :(得分:1)
您还可以使用numpy.where检查数据框的所有列是否满足条件
import numpy as np
import pandas as pd
d = [
{'col1': 3, 'col2': 'wasteful'},
{'col1': 0, 'col2': 'hardly'},
]
df = pd.DataFrame(d)
print(all(np.where(df['col1'] > 2, True, False)))
#False