查找列的行中的空单元格 | 数据框熊猫

Ric*_*oke 3 python dataframe pandas

我的数据框有一个名为“老师”的列,我想知道该列中的空行。例子:

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

我知道如果我做这样的事情:

R = ['R']
cond = df['Teacher'].str.startswith(tuple(R))
print(cond)
Run Code Online (Sandbox Code Playgroud)

它打印该列的行并以布尔值形式告诉我以 R 开头的老师。

print(cond)
0      False
1      False
2      True
3      False
4      True
Name: Teacher, Length: 5, dtype: object
Run Code Online (Sandbox Code Playgroud)

我希望空的也一样,当它为空时返回 True,当它不是时返回 false,但不知道如何。

jez*_*ael 8

如果为空则缺少值或None使用Series.isna

cond = df['Teacher'].isna()
Run Code Online (Sandbox Code Playgroud)

如果空是零个或多个空格,请使用Series.str.contains

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

如果empty是空字符串,则通过它进行比较:

cond = df['Teacher'] == ''
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)