python - 从不同的py脚本使用函数时出现NameError
我有一个Python脚本,叫做MergeData.py,这个脚本用来合并两个数据文件。因为我有很多对数据文件需要合并,所以我觉得把MergeData.py里的代码放进一个函数,比如叫merge_data(),然后在另一个Python脚本里用循环来调用这个函数,会让代码更易读。
我有两个问题:
从速度上考虑,从另一个文件调用这个函数是否明智?而不是直接在循环里运行代码?(我有成千上万对需要合并的文件。)
我想在MergeData.py里使用这个函数,所以我需要在我的脚本开头加上from MergedData import merge_data。我在merge_data函数里使用了pandas,而我在主文件里是通过'import pandas as pd'来导入的。当我调用这个函数时,出现了'NameError: global name 'pd' is not defined'的错误。我尝试了在各种地方导入pandas模块,甚至在函数内部导入,但错误还是一直出现。我到底做错了什么?
在MergeData.py里我有
def merge_data(myFile1,myFile2):
df1 = pd.read_csv(myFile1)
df2 = pd.read_csv(myFile2)
# ... my code
而在另一个文件里我有
import pandas as pd
from MergeData import merge_data
# then some code to get my file names followed by
FileList = zip(FileList1,FileList2)
for myFile1,myFile2 in FileList:
# Run Merging Algorithm
dataEq = merge_data(myFile1,myFile2)
我知道有关于如何从一个Python脚本调用另一个Python脚本的最佳方法的讨论,但我不太确定这是否和我有关。
1 个回答
2
你需要把这行代码
import pandas as pd
移动到实际需要这个符号 pd
的模块里,也就是说,把它从你的“其他文件”里移到 MergeData.py
文件里。