OpenPyXL - 如果 cell.value 是 None 如何跳过行
OpenPyXL - How to skip row if cell.value is None
我在这里阅读了很多关于空行的答案,但不知何故,我尝试将这些解决方案应用到我的脚本中却失败了。
我正在使用 OpenPyXL 读取 excel 文件中的工作表,并将其要处理的部分加载到 DataFrame(首先将每一行读取到列表列表,然后将其转换为 DataFrame)。问题是,如果第一个单元格的 cell.value 是 None
,我正在寻找跳过行的优雅解决方案
我使用以下代码遍历行:
for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
data_rows.append([cell.value for cell in row])
以下可能是您想要的:
def skip_empty_rows(ws):
for row in ws.values:
if row[0] is None:
continue
yield row
df = pd.DataFrame((skip_empty_rows(ws))
谢谢,
解决方案是如此简单,我什至感到羞愧,我什至在问:)
这里运行良好:
for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
if row[0].value is not None:
data_rows.append([cell.value for cell in row])
else: continue
我在这里阅读了很多关于空行的答案,但不知何故,我尝试将这些解决方案应用到我的脚本中却失败了。
我正在使用 OpenPyXL 读取 excel 文件中的工作表,并将其要处理的部分加载到 DataFrame(首先将每一行读取到列表列表,然后将其转换为 DataFrame)。问题是,如果第一个单元格的 cell.value 是 None
,我正在寻找跳过行的优雅解决方案我使用以下代码遍历行:
for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
data_rows.append([cell.value for cell in row])
以下可能是您想要的:
def skip_empty_rows(ws):
for row in ws.values:
if row[0] is None:
continue
yield row
df = pd.DataFrame((skip_empty_rows(ws))
谢谢, 解决方案是如此简单,我什至感到羞愧,我什至在问:)
这里运行良好:
for row in ws.iter_rows(min_col=adres[0], min_row=adres[1], max_col=adres[2], max_row=adres[3]):
if row[0].value is not None:
data_rows.append([cell.value for cell in row])
else: continue