[英]lambda function to find if values are boolean
我有以下DF:
is_bool
True
False
NaN
foo
3
我希望使用 pandas_schema 對此列進行驗證。 這是我寫的function,我認為是不正確的:
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')]
output 應該告訴一個值何時不是真或假:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.