簡體   English   中英

在 Python 中使用 Pandas 打開一個已損壞的 .xls 文件

[英]Open with Pandas in Python a .xls file that is corrupted

所以這就是問題所在,我正在嘗試從從COGNOS下載的文件中導入 DF。 在 cognos 中,我選擇.CSV格式,但總是下載格式為.xls

打開 .xls 文件並將其另存為 CVS 將非常容易,但問題在於該文件的行數比 excel 多,因此我將在此過程中丟失大量數據。 此外,當我在 excel 中打開文件時,它會警告該文件可能已損壞。

當我嘗試使用df = pd.read_excel("Time Series 2018-1.xls")打開數據時,它顯示了以下問題。

XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\\xff\\xfeP\\x00r\\x00o\\x00'

請幫忙

你可以試試

  1. 更改文件名,刪除空格和破折號,然后重試
  2. 跟隨這個熊貓官方鏈接

我已經解決了。 只需在 sublime 中打開文件並使用編碼UTF-8保存。 然后只需使用df = pd.read_csv("Prueba1.xls", sep = "\\t", encoding = 'utf8')打開它,因為正如@dougp 所說,它只是一個擴展名為 xls 的 csv 文件。

我想有一種方法可以更改 PYTHON 中的編碼,但這是另一個問題。

讀取 pandas / python 中的 xls 文件:不支持的格式,或損壞的文件:預期的 BOF 記錄; 找到 b'\xef\xbb\xbf <!--?xml'</div--><div id="text_translate"><p> 我正在嘗試將xls文件(只有一個選項卡)打開到 pandas dataframe 中。</p><p> It is a file that i can normally read in excel or excel for the web, in fact here is the raw file itself: <a href="https://www.dropbox.com/scl/fi/zbxg8ymjp8zxo6k4an4dj/product-screener.xls?dl=0&amp;rlkey=3aw7whab78jeexbdkthkjzkmu" rel="nofollow noreferrer">https://www.dropbox.com/scl/fi/zbxg8ymjp8zxo6k4an4dj/product-screener.xls?dl= 0&amp;rlkey=3aw7whab78jeexbdkthkjzkmu</a> 。</p><p> 我注意到前兩行合並了單元格,一些列也是如此。</p><p> 我嘗試了幾種方法(來自堆棧),但都失敗了。</p><pre> # method 1 - read excel file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_excel(file) print(df)</pre><p> 錯誤: Excel file format cannot be determined, you must specify an engine manually.</p><pre> # method 2 - pip install xlrd and use engine file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_excel(file, engine='xlrd') print(df)</pre><p> 錯誤: Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf&lt;?xml' Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf&lt;?xml'</p><pre> # method 3 - rename to xlsx and open with openpyxl file = "C:\\Users\\admin\\Downloads\\product-screener.xlsx" df = pd.read_excel(file, engine='openpyxl') print(df)</pre><p> 錯誤: File is not a zip file (可以選擇轉換,而不是重命名)。</p><pre> # method 4 - use read_xml file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_xml(file) print(df)</pre><p> 此方法實際上會產生結果,但會產生與工作表沒有任何意義的 DataFrame。 大概需要解釋 xml (似乎很復雜)?</p><pre> Style Name Table 0 NaN None NaN 1 NaN All funds NaN # method 5 - use read_table file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_table(file) print(df)</pre><p> 此方法將文件讀入一列(系列)DataFrame。 那么如何使用這些信息來創建與 xls 文件形狀相同的標准 2d DataFrame 呢?</p><pre> 0 &lt;Workbook xmlns="urn:schemas-microsoft-com:off... 1 &lt;Styles&gt; 2 &lt;Style ss:ID="Default"&gt; 3 &lt;Alignment Horizontal="Left"/&gt; 4 &lt;/Style&gt;... ... 226532 &lt;/Cell&gt; 226533 &lt;/Row&gt; 226534 &lt;/Table&gt; 226535 &lt;/Worksheet&gt; 226536 &lt;/Workbook&gt; # method 5 - use read_html file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_html(file) print(df)</pre><p> 這將返回一個空白列表[] ,而人們可能期望至少有一個 DataFrame 列表。</p><p> 所以問題是將這個文件讀入 dataframe (或類似的可用格式)的最簡單方法是什么?</p></div>

[英]read xls file in pandas / python: Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf<?xml'

暫無
暫無

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

相關問題 為什么用python csv和StringIO創建的.xls文件可能損壞或不安全? 如何使用Pandas.read_excel在內存中打開XLS文件? 將 xls 文件讀入 python 讀取 pandas / python 中的 xls 文件:不支持的格式,或損壞的文件:預期的 BOF 記錄; 找到 b'\xef\xbb\xbf <!--?xml'</div--><div id="text_translate"><p> 我正在嘗試將xls文件(只有一個選項卡)打開到 pandas dataframe 中。</p><p> It is a file that i can normally read in excel or excel for the web, in fact here is the raw file itself: <a href="https://www.dropbox.com/scl/fi/zbxg8ymjp8zxo6k4an4dj/product-screener.xls?dl=0&amp;rlkey=3aw7whab78jeexbdkthkjzkmu" rel="nofollow noreferrer">https://www.dropbox.com/scl/fi/zbxg8ymjp8zxo6k4an4dj/product-screener.xls?dl= 0&amp;rlkey=3aw7whab78jeexbdkthkjzkmu</a> 。</p><p> 我注意到前兩行合並了單元格,一些列也是如此。</p><p> 我嘗試了幾種方法(來自堆棧),但都失敗了。</p><pre> # method 1 - read excel file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_excel(file) print(df)</pre><p> 錯誤: Excel file format cannot be determined, you must specify an engine manually.</p><pre> # method 2 - pip install xlrd and use engine file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_excel(file, engine='xlrd') print(df)</pre><p> 錯誤: Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf&lt;?xml' Unsupported format, or corrupt file: Expected BOF record; found b'\xef\xbb\xbf&lt;?xml'</p><pre> # method 3 - rename to xlsx and open with openpyxl file = "C:\\Users\\admin\\Downloads\\product-screener.xlsx" df = pd.read_excel(file, engine='openpyxl') print(df)</pre><p> 錯誤: File is not a zip file (可以選擇轉換,而不是重命名)。</p><pre> # method 4 - use read_xml file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_xml(file) print(df)</pre><p> 此方法實際上會產生結果,但會產生與工作表沒有任何意義的 DataFrame。 大概需要解釋 xml (似乎很復雜)?</p><pre> Style Name Table 0 NaN None NaN 1 NaN All funds NaN # method 5 - use read_table file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_table(file) print(df)</pre><p> 此方法將文件讀入一列(系列)DataFrame。 那么如何使用這些信息來創建與 xls 文件形狀相同的標准 2d DataFrame 呢?</p><pre> 0 &lt;Workbook xmlns="urn:schemas-microsoft-com:off... 1 &lt;Styles&gt; 2 &lt;Style ss:ID="Default"&gt; 3 &lt;Alignment Horizontal="Left"/&gt; 4 &lt;/Style&gt;... ... 226532 &lt;/Cell&gt; 226533 &lt;/Row&gt; 226534 &lt;/Table&gt; 226535 &lt;/Worksheet&gt; 226536 &lt;/Workbook&gt; # method 5 - use read_html file = "C:\\Users\\admin\\Downloads\\product-screener.xls" df = pd.read_html(file) print(df)</pre><p> 這將返回一個空白列表[] ,而人們可能期望至少有一個 DataFrame 列表。</p><p> 所以問題是將這個文件讀入 dataframe (或類似的可用格式)的最簡單方法是什么?</p></div> Python 下載 zip 文件以損壞的文件結尾 python fron XLS文件中圖形的相鄰矩陣 Python Pandas:Output 到 ZBF57C906FA7D2BB66D07372E41585Dls9 覆蓋選定的工作表。 如何在熊貓中打開文件 如何在python中使用“ with open”自動保存在不同的xls中? 使用熊貓從URL文件下載/加載xls
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM