我想在我的脚本extractor.py中提取一个excel文件并将其导入我的脚本calculate.py但不重新计算它!
这是我的代码:
in extractor.py
current_directory=os.getcwd()
workbook_clients=pandas.ExcelFile(current_directory+"/Documents/clients.xlsx")
clients=pandas.io.excel.ExcelFile.parse(workbook_clients)
在calculation.py
中from extractor import *
print clients
现在当我运行calculate.py时需要30秒才能运行,我不明白为什么,我只想在内存中调用变量...
答案 0 :(得分:1)
好的,我终于找到了另一种方法来做我想要的事情:
in extractor.py
current_directory=os.getcwd()
workbook_clients=pandas.ExcelFile(current_directory+"/Documents/clients.xlsx")
global clients
clients=pandas.io.excel.ExcelFile.parse(workbook_clients)
在calculation.py
中print clients
答案 1 :(得分:0)
如果您的数据集非常大,read_csv
应该比read_excel
快很多。 (Source)
在您的评论后进行编辑:如果您想确保在日常工作中只使用提取器获取值,请编写一个方法
import os
import pandas as pd
def get_data():
current_directory=os.getcwd()
workbook_clients=pd.ExcelFile(current_directory+"/Documents/clients.xlsx")
data=pd.io.excel.ExcelFile.parse(workbook_clients)
return data
clients = get_data()
print(clients)
现在你可以用clients
做任何你想要的事情并且从内存中调用它。如果您想重新读取数据,只需再次调用该方法即可。
显然,您也可以在extractor.py中编写该方法,并从其他地方调用它。
BTW:from module import *
位于你不应该 -list上。 Further reading.:)