python - 使用来自不同py脚本的函数给出了NameError

时间:2014-07-23 10:53:04

标签: python function

我有一个py脚本,我们称之为MergeData.py,我合并了两个数据文件。因为我有很多必须合并的数据文件对,所以我认为将可能的原因放在MergeData.py中将我的代码放入一个函数,比如merge_data(),然后在一个循环中调用这个函数我在另一个py脚本中的数据文件对。

2个问题:

  1. 在速度方面,从不同的文件调用函数而不是直接在循环中运行代码是明智的吗? (我有数千对必须合并。)

  2. 我想,要使用MergeData.py中的函数,我必须在MergedData导入merge_data的脚本中加入。在函数merge_data中,我使用pandas,我在主文件中通过'import pandas as pd'导入。调用函数时,我得到错误'NameError:global name'pd'未定义'。我已尝试所有可能的地方导入pandas模块,即使在函数内,但错误不断弹出。我做错了什么?

  3. 在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)
    

    我知道What is the best way to call a Python script from another Python script?,但无法确定这是否与我有关。

1 个答案:

答案 0 :(得分:1)

您需要移动线

import pandas as pd

进入实际需要符号pd的模块中,即将其移出“其他文件”并移至MergeData.py文件中。