【发布时间】:2019-12-12 14:09:31
【问题描述】:
我是熊猫新手,所以我不知道这是不是一个愚蠢的问题。
如何让 if 语句检测空白单元格并在为真时运行代码。
例如
if (blank_cell_found):
execute_code
我尝试使用 if cell is None 但我没有从我的 if 语句中得到响应。
我使用数组来存储 pandas 列,我知道可能有更好的方法来做到这一点,但就像我说的那样,我是新手。
假设我的 excel 工作表如下所示:
A B
Name1 LastName1
Name2
Name3 LastName3
Name4 LastName4
我的代码:
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')
当我运行它时,我希望在 concole 中得到响应,但没有得到任何响应。
我尝试Array == "" 和Array == LastName[1] 看看我是否会得到任何回应,但仍然没有回应。
如果有更简单的方法可以做到这一点,我也将不胜感激。
【问题讨论】:
-
尝试使用
if pandas.isna(Array),顺便说一句,这样做的效率很低。你的预期输出是什么?只要有空单元格就打印多少次Cell is empty? -
目前我只是想触发我的 if 语句,
Cell is empty现在只是一个占位符。我想做的是:if (cell is empty):drop index -
drop index 如果任何单元格为空,则删除整行?
df.dropna(subset='B')怎么样? -
不,我想保留该专栏。我要删除任何数据不完整的行
-
df.dropna(subset=['B'])会做到这一点。subset这里用作标准。换句话说,当且仅当列B的单元格为空时才会删除行:如果行在A列中有一个空单元格,dropna(subset=['B'])将不会删除任何内容。