如何在Linux环境下将Excel公式而非计算值导入pandas DataFrame
解决方法
方法1:使用pandas内置参数直接读取(推荐)
pandas 1.3.0及以上版本支持通过engine_kwargs参数向底层的openpyxl引擎传递配置,直接读取保留公式的内容:
import pandas as pd df = pd.read_excel( "test.xlsx", engine="openpyxl", engine_kwargs={"data_only": False} )
读取后得到的DataFrame就会保留单元格中的原始公式,而非计算后的值。
方法2:手动读取openpyxl内容构造DataFrame
如果你的pandas版本较低不支持engine_kwargs参数,可以手动读取工作表内容后构造DataFrame:
import pandas as pd from openpyxl import load_workbook # 加载工作簿,指定保留公式 wb = load_workbook("test.xlsx", data_only=False) ws = wb.active # 读取所有单元格内容 all_rows = [] for row in ws.iter_rows(values_only=True): all_rows.append(list(row)) # 第一行作为表头,剩余内容作为数据构造DataFrame df = pd.DataFrame(all_rows[1:], columns=all_rows[0])
如果不需要将第一行设为表头,直接使用df = pd.DataFrame(all_rows)即可。
内容的提问来源于stack exchange,提问作者user3313834
相关产品推荐
相关产品推荐

