Python Forum
Converting Filter to If Else Statement and Count
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Converting Filter to If Else Statement and Count
#1
I have a dataset with over 9000 rows and multiple columns. I would like to filter a couple columns, one by type from dropdown selection, the other to include keywords in a different column. Once filtered I would like to get a count of the remaining rows in the dataset. Currently I have the filter looking like this:

(df['Type of breach']!='HACK') & (df['Description of incident'].str.contains('bank account', na=False) | df['Description of incident'].str.contains('social security number', na=False))

I am not sure how to get a count of the filtered rows. Do I have to make the above filter into an If/Else statement? If so, how do I do so to filter from data frame and to include all of my And/Or statements?

I have tried this so far:

NewList = 0

for index,
if (df['Type of breach']!='HACK') 
    & (df['Description of incident'].str.contains('bank account', na=False) 
    | df['Description of incident'].str.contains('social security number', na=False))
    NewList +=1
and I receive this error:

Error:
File "<ipython-input-2-5037b8dfd889>", line 3 for index, ^ SyntaxError: invalid syntax
Reply
#2
You don't need to use pure for-loop here,

# the number of rows where your condition is True
true_cnt = (df['Type of breach']!='HACK') 
    & (df['Description of incident'].str.contains('bank account', na=False) 
    | df['Description of incident'].str.contains('social security number', na=False)).sum()

# The number of rows in df (Total)
len(df)

# Probably, you need this:
len(df) - true_cnt 
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020