有没有办法让pandas只读取excel的值而不是公式?它以NaN形式读取公式,除非我进入并在运行代码之前手动保存excel文件.我正在使用pandas的基本读取excel功能,
import pandas as pd df = pd.read_excel(filename, sheetname="Sheet1")
如果我在运行代码之前进入并保存了文件,这将读取值.但是在运行代码来更新新工作表之后,如果我没有进入并在执行此操作后保存文件并尝试再次运行,则会将公式读取为NaN而不仅仅是值.是否存在任何人都知道的解决方案只会从大熊猫中读取excel的值?
真奇怪 熊猫的正常行为是读取值,而不是公式。问题可能出在您的excel文件中。您的公式可能指向其他文件,或者它们返回的值被pandas视为nan。
在第一种情况下,需要更新工作表,大熊猫对此无能为力(但请继续阅读)。
在第二种情况下,您可以通过在read_excel中设置显式的nan值来解决:
pd.read_excel(path, sheetname="Sheet1", na_values = [your na identifiers])
对于第一种情况,作为一种使您的工作更轻松的解决方法,您可以使用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删除临时文件。