我有以下DF:
is_bool
True
False
NaN
foo
3
我希望使用pandas_schema对此专栏进行验证。这是我写的函数,我认为它是不正确的:
def check_bool(byte):
try:
bool(byte)
except ValueError:
return False
return True
bool_validation = [CustomElementValidation(
lambda b: check_bool(b), 'Value is not is boolean format')]
输出应该告诉一个值何时不是True或False:
row 2 is 'Value is not is boolean format'
row 3 is 'Value is not is boolean format'
row 4 is 'Value is not is boolean format'
您可以使用pandas.Series.apply
:
>>> df.is_bool.apply(isinstance, args = (bool,))
0 True
1 True
2 False
3 False
4 False
Name: is_bool, dtype: bool
我认为try-except
可以将isinstance
与bool
:一起使用
df = pd.DataFrame({'is_bool':['', True, False, np.nan, 'foo', 3]})
def check_bool(x):
return isinstance(x, bool)
print (df['is_bool'].apply(check_bool))
0 False
1 True
2 True
3 False
4 False
5 False
Name: is_bool, dtype: bool