Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Pandas代码创建独立文件_Python_Excel_Pandas - Fatal编程技术网

Python 使用Pandas代码创建独立文件

Python 使用Pandas代码创建独立文件,python,excel,pandas,Python,Excel,Pandas,我几乎没有Python或计算机科学方面的背景,所以我会尽我最大的努力来解释我想要完成什么。我在Jupyter笔记本中有一个Pandas脚本,它编辑Excel.csv文件并将其导出为Excel.xlsx文件。基本上,我们之所以要这样做,是因为我们从同一个来源获得了同样的Excel电子表格,其中充满了不需要的、无组织的数据。我希望我办公室里没有Python的其他人能够使用此脚本编辑这些电子表格。据我所知,这涉及到创建一个独立的文件 以下是我从Pandas导出新电子表格的代码: import pand

我几乎没有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脚本,你需要在该系统中安装python。 一旦有了它,只需为命令创建一个.bat文件,该命令将用于通过CMD执行python文件

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

步骤2:在文件中编写如下命令,只需根据需要替换路径和文件名

python file.py
步骤3:另存为script.bat保存时从文件类型列表中选择所有类型


现在,您可以像任何其他程序一样运行该批处理文件,它将为您运行代码。分发此批处理文件和python脚本时,您需要做的唯一一件事是确保这两个文件保持在同一位置。否则,您将不得不在file.py前面添加完整路径。首先,您需要更改代码中的某些部分,以使其适用于任何人,而无需他们编辑Python代码。 其次,您需要将文件转换为可执行的.exe文件

您的代码中只有一个部分需要更改才能适用于所有人:csv文件名和目录

由于您的代码仅在文件test.csv位于J:/SDGE/目录中时有效,因此您可以遵循以下解决方案之一:

告诉所有使用该程序的人,该文件必须位于一个精确的公共目录中,并命名为test.csv才能工作。令人不快的 更改程序以允许用户输入。这有点复杂,但可能是人们想要的解决方案: 在顶部添加文件选择器的导入:

from tkinter.filedialog import askopenfilename
替换

'J:/SDGE/test.csv'

这应该是最终的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文件转换为可执行文件。我将对此进行研究。

基本上,您需要将Python脚本打包为可执行文件。虽然不建议这样做,但您肯定会遇到一些特定于地区的问题。在您的系统上下载cxfreeze,然后按照指南进行操作。您的意思是只想调用python.py文件吗?哇,这太棒了,迫不及待地想尝试askopenfilename函数!谢谢
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()