【问题标题】:python pandas formula to dataframepython pandas公式到数据框
【发布时间】:2014-08-26 01:07:06
【问题描述】:

我正在创建一个包含大量计算的数据框,并使用这些公式(计算)添加新列。然后我将数据框保存到 Excel 文件中。 保存文件并再次打开文件后,我丢失了公式。 例如,我正在使用类似的东西: 总计 = 16

for s in range(total):
    df_summary['Slopes(avg)' + str(s)]= df_summary[['Slope_S' + str(s)]].mean(axis=1)*df_summary['Correction1']/df_summary['Correction2'].mean(axis=1)

如何确保这个公式出现在我写入的 excel 文件中,类似于我们在 excel 工作表中的公式?

【问题讨论】:

  • 我怀疑是否有一种方法可以完全按照您的意愿行事,但是有一个 python 包xlwt 可能是您的最佳选择。

标签: python excel pandas save formula


【解决方案1】:

您可以使用 XlsxWriter 模块将公式写入 excel 文件。使用 .write_formula() https://xlsxwriter.readthedocs.org/worksheet.html#worksheet-write-formula。如果您不喜欢使用 excel 文件来存储数据框,您可能需要考虑使用 pickle 模块。

import pickle
# to save
pickle.dump(df,open('saved_df.p','wb'))
# to load
df = pickle.load(open('saved_df.p','rb'))

【讨论】:

  • 我不喜欢使用 excel 文件,但如果我能在其中获取公式,这是一种更方便的方法。这是我第一次听说泡菜模块。这有什么帮助?
  • Pickle 允许您将 Python 对象(如列表或数据框)存储在文件中。这样,您可以轻松地以您离开它的状态重新加载数据框,而无需将其写入 excel 并在您想再次使用它时读取它。 import pickle # to save pickle.dump(df, open('saved_df.p','wb') # to load df = pickle.load(open('saved_df.p','rb')
  • 谢谢,我会研究一下,看看它对我有什么帮助。听起来很有趣。
【解决方案2】:

我认为我的回答 here 可能会有所反应。简而言之,您需要使用 openpyxl(或者如果他们添加了对它的支持,也可能是 xlrd)来提取公式,然后 xlsxwriter 将公式写回去。绝对可以做到。

当然,正如@jay 指出的那样,这假设您首先将 Excel 公式写入 DataFrame。 (此解决方案是酸洗的替代方案。)

【讨论】:

    猜你喜欢
    • 2014-07-28
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2016-04-07
    相关资源
    最近更新 更多