如何检查列中的所有值是否满足数据框中的条件?

时间:2017-12-19 07:59:10

标签: python pandas

如何检查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

更具可读性,更快和/或内存占用方式更少?

2 个答案:

答案 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