【问题标题】:Python - pandas / openpyxl: Tips on Automating Reports (Moving Away from VBA). [closed]Python - pandas / openpyxl:自动化报告的技巧(远离 VBA)。 [关闭]
【发布时间】:2019-01-01 08:41:50
【问题描述】:

我目前设置了宏来自动化我的所有报告。但是,由于我的数据大小,我的一些宏可能需要 5-10 分钟。

我已经从 Excel/VBA 转向 Python/pandas 来进行数据分析和操作。我仍然使用 excel 进行数据可视化(即数据透视表)。

我想知道其他人如何使用 python 来自动化他们的报告?你们是做什么的?关于如何启动该过程的任何提示?

我的大部分宏执行以下操作 -

  • 导入文本文件
  • 将原始数据粘贴到链接到数据透视表/图表的表格中。
  • 刷新工作簿
  • 另存为新的

【问题讨论】:

  • 这个问题对于 Stack Overflow 来说非常宽泛,可能最终会因为这个原因而被关闭。您可能想查看openpyxl 之类的内容。看看你能用它走多远,如果你的代码有具体问题,请回来!

标签: python excel vba pandas reporting


【解决方案1】:

我经常做数据报告,您可以考虑使用以下工具来帮助您:

  1. Python / 熊猫

很高兴您已经熟悉 pandas 和 Python。您可以使用以下方法导入对于 Excel 而言太大而无法读取和操作的文本文件:

import pandas as pd
df = pd.read_csv('/path/to/your/text.csv')
# carry out other data analysis like filtering, user-defined functions for special data manipulation etc.

您还可以使用 numpy 进行数据操作和函数。

  1. 图表的绘制

您可以使用 matplotlib 绘制图表:

import matplotlib.pyplot as plt
ax = df.plot()
# manipulate charts by changing title, series, set intervals etc.
plt.show()
  1. 将文件导出为新的 Excel 工作簿

由于您使用的是 pandas,您可以使用它的 [to_excel()][1] 函数将您的数据框导出为新的 Excel 工作簿:

writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    当使用 python 自动生成报告时,我将报告从 Excel 完全转换为 Pandas。我使用 pd.read_csv 或 pd.read_excel 读取数据,并将完全格式化的数据透视表导出到 excel 中以供查看。根据我的经验,python 不能很好地处理“粘贴到表中并刷新”,并且可能仍然需要宏来正确处理,即,从 python 导出带有格式化数据的 csv,然后运行一个简短的宏来复制和粘贴。

    如果您有任何更具体的问题,请提出,我已经完成了一些不错的工作

    【讨论】:

    • 自动化流程应该很容易。使用上述建议。测试您的任何想法,并在 Google 上找到您不理解的解决方案。我正在做你正在做的同样的事情。从一个环境转移到另一个环境只需要一点时间,因为它们完全不同。您认为 Python 比 Excel 快得多是正确的。最后,查看下面的链接,了解如何自动执行 Python 进程。 shahronak47.wordpress.com/2016/11/30/…
    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2017-05-14
    相关资源
    最近更新 更多