pandas阅读excel值不是公式

有没有办法让pandas只读取Excel中的值而不是公式? 它读NaN中的公式,除非我进入并在运行代码之前手动保存excel文件。 我只是用pandas的基本读取excel函数,

import pandas as pd df = pd.read_excel(filename, sheetname="Sheet1") 

这将读取值,如果我已经进入并保存该文件之前运行的代码。 但是在运行代码来更新一个新表单之后,如果我不进去并保存这个文件并且试着再次运行这个文件,它会把公式读作NaN而不是只读取这些值。 是否有任何人知道这只会读取大pandas的价值观?

真奇怪 pandas的正常行为是读取值,而不是公式。 可能,问题出在你的excel文件中。 也许你的公式指向其他文件,或者他们返回一个pandas认为是nan的值。

在第一种情况下,工作表需要更新,大pandas可以做些什么(但请继续阅读)。

在第二种情况下,可以通过在read_excel中设置显式的nan值来解决:

 pd.read_excel(path, sheetname="Sheet1", na_values = [your na identifiers]) 

至于第一种情况,作为一个解决scheme,让您的工作更轻松,您可以使用xlwings自动执行您正在执行的操作:

 import pandas as pd import xlwings as xl def df_from_excel(path): app = xl.App(visible=False) book = app.books.open(path) book.save() app.kill() return pd.read_excel(path) df = df_from_excel(path to your file) 

如果你想在Excel文件中保存这些公式,只需将文件保存在不同的位置(book.save(不同位置))。 然后你可以用shutil去除临时文件。