How to check for Boolean condition in pandas dataframe

陌路散爱 提交于 2021-02-08 02:36:21

问题


I have Alcohol_df dataframe in which qualification is a column.

I have created a list as follows:

Graduate_list=['B.tech','b.tech','b-tech','Btech','BE',
               'B.E', 'b.e','BACHELOR','bachelor','BSc',
               'Bsc','bsc','BSC','BBM']

I did

Alcohol_df['qualification'].isin(Graduate_list) 

to find which columns contains the elements from the list.

I want to do some operation on the dataframe if its value is in the list.I did

if ((Alcohol_df['qualification'].isin(Graduate_list)):

But getting this error

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

Kindly help me solve this


回答1:


I think you need any (return True if at least one value is True) or all (return True if all values are Trues) for return scalar, because else it return boolean Series:

if (Alcohol_df['qualification'].isin(Graduate_list).any()):

Sample:

Alcohol_df = pd.DataFrame({'qualification':['B.tech','a','Btech'],
                           'B':[4,5,6]})

print (Alcohol_df)
   B qualification
0  4        B.tech
1  5             a
2  6         Btech

print (Alcohol_df['qualification'].isin(Graduate_list))
0     True
1    False
2     True
Name: qualification, dtype: bool

if (Alcohol_df['qualification'].isin(Graduate_list).any()):
    print ('bingo')

If need select DataFrame by boolean Series use boolean indexing:

df1 = Alcohol_df[Alcohol_df['qualification'].isin(Graduate_list)]
print (df1)
   B qualification
0  4        B.tech
2  6         Btech


来源:https://stackoverflow.com/questions/43582154/how-to-check-for-boolean-condition-in-pandas-dataframe

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!