簡體   English   中英

當 engine='openpyxl' 時 read_excel 正在讀取空行

[英]read_excel is reading empty rows when engine='openpyxl'

我最近切換到 Jupyter Lab,發現 pd.read_excel() 現在在其 arguments 中需要“engine = 'openpyxl'”,以避免默認為 xlrd 時出現已知錯誤。 不幸的是,openpyxl 作為一個引擎引入了我以前的代碼都沒有考慮的問題。

特別是,當我導入 xlsx 文件時,在數據幀末尾出現 append 行 NaN 值。 我知道 Excel 工作表開頭的空白行被推到導入末尾的問題,而這里不是這種情況。 我有一個 Excel 文件,其中包含多個選項卡,每個選項卡的第一行中有 16 個唯一的列標題(並且選項卡之間相同),並且每一行都填充了數據。 以前,在 Jupyter Notebook(並且沒有 engine='openpyxl')中,帶有 sheet_name=None 的 read.excel() 將從每個選項卡創建一個數據幀字典,不會讀取數據末尾之外的其他行。 現在,我在一些數據幀的末尾得到了一千多行空白行。

我不期待瀏覽我所有的舊代碼並將 dropna(how='all) 添加到每個導入中,並且擔心這可能表明我沒有發現更大的問題。 有沒有人經歷過類似的事情? 下面是在 Jupyter Lab 中導入有問題的選項卡之一作為示例,以及選項卡本身的 Excel 表,第 5226 行之外沒有數據。

謝謝您的幫助!

從 Jupyter Lab 導入一個選項卡

有問題的選項卡,在第 5226 行結束

在 pandas 的 1.1.4 版本中,您需要engine="openpyxl"但在 pandas 的 1.2.4 版本中,您將不需要 openpyxl 參數。 所以升級可能是值得的,但不確定它是否能解決你的問題。

pip install pandas --upgrade

檢查您安裝了哪些版本

import pandas as pd
import openpyxl
print(pd.__version__)
print(openpyxl.__version__)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM