[英]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
到目前為止我嘗試了什么:
嘗試在發生異常的 Pandas package 本身中將堆棧限制(恐慌和警告)更改為 10000。 遇到遞歸限制,因此將其提高到 125000,這導致我的 Mac/Python 達到其限制,所以我猜這不是正確的解決方案。
使用內存密集型 EMR 來查看它是否可以讀取文件 - 不。
在此處查看 XLRD 的 GitHub 存儲庫以提出一個錯誤,結果發現它已不受支持。
打開文件,將其保存為 xlsx,使用相同的代碼將其讀入 dataframe。 像魅力一樣工作。
嘗試使用Spark Excel 庫讀取數據的特定部分 - 這也有效,但我需要使用 pandas。
谷歌搜索它只是為了找出結果會向我顯示定義異常的 XLRD 代碼。 沒有人舉報。
嘗試將 Python2 和 Python3 與最新和舊版本的 Pandas 一起使用 - 沒用。
我無法共享文件,但以前有人遇到過這個問題嗎? 有人可以幫忙嗎? 歡迎所有建議!
嘗試以下操作:
如果無法訪問文件以准確解釋正在發生的事情,很難提供進一步的幫助。
但是很可能 xlrd 正在嘗試解決公式的值並且超出了“STACK_PANIC_LEVEL”。 沒有看到公式,很難說更多。
xlrd 有一個evaluate_name_formula()
方法。 當您嘗試使用 xlrd 打開 a.xls 文件時,如果您的文件包含許多用戶定義的公式,則會引發錯誤(如您所述)。 為了嘗試解決您的問題,我認為您可以刪除這些用戶定義的公式並保持文件中沒有這些公式。 或者您可以嘗試編輯 xlrd 代碼,並防止它引發錯誤,這似乎要困難得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.