尝试将 .xlsx 文件读取到 pandas 中的数据帧时(使用 Python 3.9 和 3.12),工作表中包含 =VLOOKUP() 公式的任何单元格都会被读取为 NaN,这种情况在本地和运行时都会发生在 AWS Lambda 内。没有显示任何错误。
没什么特别的,只是一个简单的:
df = pd.read_excel(文件路径,sheet_name=sheet)
一个有趣的事实是,如果我只是使用 LibreOffice 打开该文件并按原样保存并尝试再次读取该文件,问题就解决了,问题是该文件直接从服务器发送到 AWS,并在几个进程中使用,无需手动干预,只需使用 LibreOffice 打开并保存即可。
我不知道为什么用 LibreOffice 打开文件,不进行任何更改地保存并再次阅读可以解决问题。那么有什么建议吗?
所以这是一个问题,因为 Excel 显然使用不同的公式保存外语工作表,在我的例子中,我必须加载所有工作表并使用不同的数据框和连接数据自己重新制作 VLOOKUP。
因此,如果您有一个葡萄牙语 Excel 文件,它可能会将函数存储为 PROCV,而不是人们所期望的 VLOOKUP,这基本上在使用所有引擎加载 df 时破坏了 pandas,但无论出于何种原因,使用 LibreOffice 打开文件只是存储了又是英文公式。