使用Pandas代码创建独立文件

时间:2017-08-01 17:50:07

标签: python excel pandas

我几乎没有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()

如何将此代码转换为独立的可执行文件?我见过其他论坛对类似问题的回应,但我仍然不明白如何做到这一点。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果要在任何人的系统上运行python脚本,则需要在该系统中安装Python。 完成后,只需为您通过CMD执行python文件所使用的命令创建一个.bat文件。

第1步:打开记事本并创建新文件

第2步:在文件中按如下方式编写命令(只需根据您替换路径和文件名)

python file.py

第3步:将其另存为script.bat(保存时从文件类型列表中选择所有类型)

现在您可以像任何其他程序一样运行该批处理文件,它将为您运行代码。分发此批处理文件和python脚本时,您唯一需要做的就是确保两个文件都保存在同一位置。否则你将不得不在file.py

前添加完整路径