有没有一种方法可以让pandas只从excel中读入值而不读入公式?它会以NaN的形式读入公式,除非我在运行代码之前手动保存excel文件。我只是在使用pandas的基本read excel函数,
import pandas as pd
df = pd.read_excel(filename, sheetname="Sheet1")
字符串
如果我在运行代码之前已经进入并保存了文件,这将读取值。但是在运行代码以更新新工作表之后,如果我在这样做之后没有进入并保存文件并尝试再次运行,它将以NaN读取公式而不仅仅是值。有没有任何人知道的解决方法可以只从Excel中读取值?
4条答案
按热度按时间o8x7eapl1#
这很奇怪。pandas的正常行为是读取值,而不是公式。很可能,问题出在您的excel文件中。可能您的公式指向其他文件,或者它们返回的值被pandas视为nan。
在第一种情况下,工作表需要更新,pandas对此无能为力(但请继续阅读)。
在第二种情况下,您可以通过在read_excel中设置显式的nan值来解决:
字符串
对于第一种情况,作为一种使您的工作更轻松的解决方案,您可以使用xlwings手动自动化您正在做的事情:
型
如果你想把这些公式保存在excel文件中,只需要把文件保存在不同的位置(book.保存(不同的位置))。然后你就可以用shutil去掉这些临时文件。
bttbmeg02#
我遇到了这个问题,我通过将一个图形移到我正在阅读的第一行下面来解决它。看起来图形的位置可能会导致问题。
daolsyd03#
你可以使用xlrd来读取值.首先你应该刷新你的excel工作表你也是用python自动更新值.你可以使用下面的函数file = myxl.xls
字符串
文件刷新后,您可以开始阅读内容。
型
你可以循环通过你需要的数据。并把条件,而你是阅读数据。更多的灵活性
mqkwyuun4#
我有完全相同的问题,但我发现(在我的情况下)没有问题。
我使用EXCEL VIEWER扩展名。在带有该扩展名的Excel文件中查找,如果您单击写有“#NAME?”的单元格,则看起来值不在那里,而是公式在那里。
无论如何.在做了pd.read_excel之后,这个框架工作正常。