当前位置:  开发笔记 > 编程语言 > 正文

大熊猫读取excel值而不是公式

如何解决《大熊猫读取excel值而不是公式》经验,为你挑选了1个好方法。

有没有办法让pandas只读取excel的值而不是公式?它以NaN形式读取公式,除非我进入并在运行代码之前手动保存excel文件.我正在使用pandas的基本读取excel功能,

import pandas as pd

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

如果我在运行代码之前进入并保存了文件,这将读取值.但是在运行代码来更新新工作表之后,如果我没有进入并在执行此操作后保存文件并尝试再次运行,则会将公式读取为NaN而不仅仅是值.是否存在任何人都知道的解决方案只会从大熊猫中读取excel的值?



1> 小智..:

真奇怪 熊猫的正常行为是读取值,而不是公式。问题可能出在您的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删除临时文件。

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有