Ricardoke
Ricardoke

Reputation: 153

Find empty cells in rows of a column | Dataframe pandas

My Dataframe has a column named "Teacher" and i want to know in that column the rows that are empty. Example:

print(df["Teacher"])
0
1
2      Richard
3
4      Richard
Name: Teacher, Length: 5, dtype: object

I know that if i do something like this:

R = ['R']
cond = df['Teacher'].str.startswith(tuple(R))
print(cond)

It prints the rows of that column and tells me in boolean the teacher that starts with the R.

print(cond)
0      False
1      False
2      True
3      False
4      True
Name: Teacher, Length: 5, dtype: object

I want the same for the empty ones, to return True when its empty and false when its not but dont know how.

Upvotes: 3

Views: 14307

Answers (1)

jezrael
jezrael

Reputation: 862396

If empty is missing value or Nones use Series.isna:

cond = df['Teacher'].isna()

If empty is zero or more spaces use Series.str.contains:

cond = df['Teacher'].str.contains(r'^\s*$', na=False)

If empty is empty string compare by it:

cond = df['Teacher'] == ''

df = pd.DataFrame({'Teacher':['',' ', None, np.nan, 'Richard']})

cond1 = df['Teacher'].isna()
cond2 = df['Teacher'].str.contains(r'^\s*$', na=False)
cond3 = df['Teacher'] == ''

df = df.assign(cond1= cond1, cond2= cond2, cond3= cond3)
print (df)

   Teacher  cond1  cond2  cond3
0           False   True   True
1           False   True  False
2     None   True  False  False
3      NaN   True  False  False
4  Richard  False  False  False

Upvotes: 8

Related Questions