函数返回的数据帧将覆盖先前的变量分配

时间:2019-02-04 04:02:47

标签: python pandas

我正在从一个函数调用另一个函数,该函数返回一个数据框,该数据框每次都返回一个新的数据框,并将其分配给变量test_1。在同一个函数中,我第二次调用另一个函数,并将返回的数据帧分配给另一个test_2。当我同时打印test_1和test_2时,它们都是相同的数据框。

这是我的代码:

def population(count, curve_set_origin):
    test = []
    test_1 = individual(1, curve_set_origin)
    print(test_1)
    test_2 = individual(2, curve_set_origin)
    print(test_2)
    print([test_1, test_2])
    return test

在第4行,test_1返回的数据帧与第6行的test_2返回的数据帧不同,但在第7行,test_1和test_2中的数据帧相同。

# Individual
def individual(name, curve_set_origin):
    new_curve = pd.DataFrame
    curve_set_origin.iloc[:,9:] = curve_set_origin.iloc[:,9:].apply(lambda x: x.apply(lambda y: y + get_random() if y != 0 else 0), axis=1)
    new_curve = curve_set_origin
    new_curve['name'] = name
    return new_curve

# Define random number between XX and XX with 4 decimal
def get_random():
    while True:
        val = float(random.randrange(-9999, 9999)/10**(random.randint(5,9)))
        if val != 0:
            return val

curve_set_origin是一个数据框。

0 个答案:

没有答案