簡體   English   中英

NAME 公式中的間接引用過多

[英]Excessive indirect references in NAME formula

我正在嘗試使用 pandas 讀取 python 中的“xls”文件。 我的代碼基本上是單行的:

import pandas as pd
df = pd.read_excel(str("/test/test_file.xls"))

此代碼適用於大多數文件,但在某些情況下它會因錯誤而失敗:

Excessive indirect references in NAME formula

到目前為止我嘗試了什么:

  1. 嘗試在發生異常的 Pandas package 本身中將堆棧限制(恐慌和警告)更改為 10000。 遇到遞歸限制,因此將其提高到 125000,這導致我的 Mac/Python 達到其限制,所以我猜這不是正確的解決方案。

  2. 使用內存密集型 EMR 來查看它是否可以讀取文件 - 不。

  3. 此處查看 XLRD 的 GitHub 存儲庫以提出一個錯誤,結果發現它已不受支持。

  4. 打開文件,將其保存為 xlsx,使用相同的代碼將其讀入 dataframe。 像魅力一樣工作。

  5. 嘗試使用Spark Excel 庫讀取數據的特定部分 - 這也有效,但我需要使用 pandas。

  6. 谷歌搜索它只是為了找出結果會向我顯示定義異常的 XLRD 代碼。 沒有人舉報。

  7. 嘗試將 Python2 和 Python3 與最新和舊版本的 Pandas 一起使用 - 沒用。

我無法共享文件,但以前有人遇到過這個問題嗎? 有人可以幫忙嗎? 歡迎所有建議!

嘗試以下操作:

  1. 打開.xls文件
  2. 將所有單元格復制/粘貼為值
  3. 重新運行您的腳本

如果無法訪問文件以准確解釋正在發生的事情,很難提供進一步的幫助。

但是很可能 xlrd 正在嘗試解決公式的值並且超出了“STACK_PANIC_LEVEL”。 沒有看到公式,很難說更多。

xlrd 有一個evaluate_name_formula()方法。 當您嘗試使用 xlrd 打開 a.xls 文件時,如果您的文件包含許多用戶定義的公式,則會引發錯誤(如您所述)。 為了嘗試解決您的問題,我認為您可以刪除這些用戶定義的公式並保持文件中沒有這些公式。 或者您可以嘗試編輯 xlrd 代碼,並防止它引發錯誤,這似乎要困難得多。

暫無
暫無

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

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