使用 Pandas 代码创建独立文件
Posted
技术标签:
【中文标题】使用 Pandas 代码创建独立文件【英文标题】:Creating a standalone file using Pandas code 【发布时间】:2017-08-01 17:50:06 【问题描述】:我几乎没有 Python 或计算机科学背景,所以我会尽力解释我想要完成的工作。我在 Jupyter 笔记本中有一个 Pandas 脚本,它编辑 Excel .csv 文件并将其导出为 Excel .xlsx 文件。基本上我们想要这样做的原因是因为我们从相同的来源获得了这些相同的 Excel 电子表格,其中充满了不需要的和杂乱无章的数据。我希望我办公室里没有 Python 的其他人能够使用这个脚本来编辑这些电子表格。据我了解,这涉及创建一个独立文件。
这是我在 Pandas 中导出新电子表格的代码:
import pandas as pd
from pandas import ExcelWriter
test = pd.DataFrame.from_csv('J:/SDGE/test.csv', index_col=None)
t = test
for col in ['Bill Date']:
t[col] = t[col].ffill()
T = t[t.Meter.notnull()]
T = T.reset_index(drop=True)
writer = ExcelWriter('PythonExport.xlsx')
T.to_excel(writer,'Sheet5')
writer.save()
我怎样才能把这段代码变成一个独立的可执行文件?我看过其他论坛对类似问题的回应,但我仍然不明白如何做到这一点。
【问题讨论】:
基本上,您需要将 Python 脚本捆绑为可执行文件。虽然不建议这样做,但您肯定会遇到一些特定于 dist 的问题。在您的系统上下载 cxfreeze,然后按照This 指导。 你的意思是你只想要一个 python.py
文件来调用?
【参考方案1】:
首先,您需要更改代码中的某些部分以使其适用于任何人,而无需他们编辑 Python 代码。 其次,您需要将文件转换为可执行文件 (.exe)。
您的代码中只有一个部分需要更改以适用于所有人:csv 文件名和目录
由于您的代码仅在文件“test.csv”位于“J:/SDGE/”目录中时才有效,因此您可以采用以下解决方案之一:
告诉使用该程序的每个人,该文件必须位于精确的公共目录中并命名为“test.csv”才能工作。 (坏) 更改您的程序以允许用户输入。这有点复杂,但可能是人们想要的解决方案:在顶部添加文件选择器的导入:
from tkinter.filedialog import askopenfilename
替换
'J:/SDGE/test.csv'
有
askopenfilename()
这应该是最终的python脚本:
import pandas as pd
from pandas import ExcelWriter
from tkinter.filedialog import askopenfilename #added this
test = pd.DataFrame.from_csv(askopenfilename(), index_col=None)
t = test
for col in ['Bill Date']:
t[col] = t[col].ffill()
T = t[t.Meter.notnull()]
T = T.reset_index(drop=True)
writer = ExcelWriter('PythonExport.xlsx')
T.to_excel(writer,'Sheet5')
writer.save()
但是,您希望它是一个可执行程序,这样其他人就不必安装 python 并且知道如何运行该脚本。有几种方法可以将新的 .py 文件转换为可执行文件。我会调查这个thread。
【讨论】:
哇,这太棒了,迫不及待想试试 askopenfilename 功能!谢谢!【参考方案2】:如果您想在任何人的系统上运行 python 脚本,您需要在该系统中安装 Python。 一旦你有了它,只需为你将用来通过 CMD 执行 python 文件的命令创建一个 .bat 文件。
第 1 步:打开记事本并创建一个新文件
第二步:在文件中编写如下命令(根据你的替换路径和文件名即可)
python file.py
第 3 步:将其另存为 script.bat(保存时从文件类型列表中选择所有类型)
现在您可以像任何其他程序一样运行该批处理文件,它会为您运行代码。在分发此批处理文件和 python 脚本时,您唯一需要做的就是确保这两个文件都保存在同一位置。否则你将不得不在 file.py 前面添加完整路径
【讨论】:
以上是关于使用 Pandas 代码创建独立文件的主要内容,如果未能解决你的问题,请参考以下文章
04 pandas DataFrame_创建、文件读取、编码
使用 .csv 格式的 HDFS 文件创建 Pandas DataFrame