【问题标题】:how to read xlsx as pandas dataframe with formulas as strings如何将 xlsx 读取为 pandas 数据框,公式为字符串
【发布时间】:2020-01-29 06:49:21
【问题描述】:

我有一个包含一些计算列的 excel 文件。

例如,我在“a”列中有一些数据,而“b”列是使用“a”列中的值计算得出的。

我需要将新数据附加到“a”列并计算“b”列并保存文件。

import pandas as pd
df = pd.DataFrame({'a':[1,2,3],'b':["=a2","=a3","=a4"]})
df.to_excel('test.xlsx',index=False)

当我尝试使用 pandas read excel 读取文件时,它会将“b”列读取为 NaN。

df = pd.read_excel(r'test.xlsx')

我如何做到这一点。可能是如果我可以将文件作为字符串读取并将公式附加为字符串。当我在 excel 中打开文件时,excel 会进行计算吗?

【问题讨论】:

    标签: excel python-3.x pandas pyexcel


    【解决方案1】:
    import pandas as pd
    import xlsxwriter
    
    name = '123.xlsx'
    writer = pd.ExcelWriter(name,engine='xlsxwriter')
    pd.DataFrame({}).to_excel(writer,sheet_name='Sheet1')
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    worksheet.write('A1',1)
    worksheet.write('A2','=A1')
    writer.save()
    

    【讨论】:

      【解决方案2】:

      使用OpenPyXL加载excel工作表而不是直接使用pandas

      from openpyxl import load_workbook
      import pandas as pd
      wb = load_workbook(filename = 'test.xlsx')
      sheet_name = wb.get_sheet_names()[0]
      ws = wb[sheet_name]
      df = pd.DataFrame(ws.values)
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-28
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-04
      • 1970-01-01
      • 2020-01-18
      • 2019-05-31
      相关资源
      最近更新 更多