簡體   English   中英

lambda function 查找值是否為 boolean

[英]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可以將isinstancebool一起使用:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM