访问函数内的数据框

时间:2017-11-29 03:55:06

标签: python dataframe scope

我想编写一个类似于以下代码的模块。这些功能存储在单独的文件中。

def function_1(arg):
    x1, x2= arg
    x3, x4= dataframe.loc[index, column_list]
    d1, d2 = some computation
    return (d1, d2)

def function_2(arg):
    y1, y2= arg
    y3, y4= dataframe.loc[index, column_list]
    d1, d2= function_1(arg)
    return (a pair of non-linear functions)

def function_3(dataframe):
    data_preprocess
    x, y = fsolve(function_2, initial_values)
    some process
    return (a new dataframe)

在main函数中,我导入此模块,然后将数据传递给function_3,如下所示。

dataframe=read_csv(directory)
some data preprocess
dataframe = function_3(dataframe)

但是,我收到以下错误消息:

NameError: name 'dataframe' is not defined in 'function_2'

以下是我的想法。

  1. 可能在'function_2'和'function_1'中使用关键字'global' 不会有帮助,因为他们会参考'main'中的'dataframe';
  2. 关键字'nonlocal'也无济于事,因为它不是写的 嵌套方式;
  3. 如果将数据框作为参数添加,会影响'fsolve'吗?
  4. 如果我错了,请好好纠正我。我应该如何更改我的代码?

0 个答案:

没有答案