如何使用 pandas 查找 Excel 中的空白单元格?

Joh*_*nta 6 python excel pandas

我对熊猫不熟悉,所以我不知道这是否是一个愚蠢的问题。

我怎样才能使 if 语句检测到空白单元格并运行代码(如果为真)。

前任。

if (blank_cell_found):
    execute_code
Run Code Online (Sandbox Code Playgroud)

我尝试使用 if cell is None 但我没有从 if 语句中得到响应。

我使用数组来存储 pandas 列,我知道可能有更好的方法来做到这一点,但就像我说的,我对此很陌生。

假设我的 Excel 工作表如下所示:

  A          B              
Name1    LastName1                       
Name2                  
Name3    LastName3                  
Name4    LastName4  
Run Code Online (Sandbox Code Playgroud)

我的代码:

xls = pd.ExcelFile('File.xlsx')
df = pd.read_excel(xls, 'Sheet1')

LastName = df['B'].values

for Array in LastName:
    if Array is None:
        print('Cell is empty')
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我希望在控制台中得到响应,但没有得到任何响应。

我尝试Array == ""看看Array == LastName[1]是否能得到任何信息,但仍然没有回应。

如果有一种更简单的方法来做到这一点,也将不胜感激。

Chr*_*ris 1

根据评论,如果有空单元格(即在 pandas 中),OP 希望删除NaN

使用OP示例数据的修改版本(注意我添加了最后一行,其中列A也有空单元格):

print(df)
       A          B
0  Name1  LastName1
1  Name2        
2  Name3  LastName3
3  Name4  LastName4
4         LastName5
Run Code Online (Sandbox Code Playgroud)

如果任何相应的列有空单元格,则使用df.dropna()将删除任何行:

       A          B
0  Name1  LastName1
2  Name3  LastName3 <<< row 1 is dropped 
3  Name4  LastName4 <<< row 4 is dropped
Run Code Online (Sandbox Code Playgroud)

当列有空单元格时,使用df.dropna(subset=['B'])才会下降:B

       A          B
0  Name1  LastName1
2  Name3  LastName3 <<< row 1 is dropped since (2, 'B') was empty
3  Name4  LastName4
4    NaN  LastName5 <<< row 4 is not dropped since dropna is only looking at 'B'
Run Code Online (Sandbox Code Playgroud)