我有一个函数,输入一个数据帧,作为一个结构。 我创建两个与该数据帧相等的本地数据帧,然后在两个不同的数据帧中输入不同的值,但是在函数的末尾,它们是相同的。 Python赋值的工作方式有问题吗
之前,我在两个单独的时刻调用了函数,分别输出两个数据帧,但有一些不同,它工作得很好。现在在Python中分配和内存的工作方式似乎有问题,所以我不知道如何使它工作。我只把代码部分放在这里,我认为问题发生的地方
def GeneraTabellaCovarianze(Fisso,Var):
Gen=Fisso
Gen1=Fisso
if Var=="DifAtt":
Pow1=Gen['ForzaDif'][a]*Gen['Dif'][a]/Gen['ForzaOff'][b]*Gen['Att'][b]
#print(Gen['Squadra'][a],Pow1)
Pow2=Gen['ForzaOff'][a]*Gen['Att'][a]/Gen['ForzaDif'][b]*Gen['Dif'][b]
#print(Gen['Squadra'][a],Pow2)
print(a,b,count)
Gen.at[a,count]=Pow1 #difensivo
Gen.at[b,count]=(1/Pow2) #difensivo
Gen1.at[a,count]=Pow2 #offensivo
Gen1.at[b,count]=(1/Pow1) #offensivo
count=count+1
Gen=Gen.drop(['Squadra','Forza', 'Gen','Att','Dif','ForzaOff','ForzaDif','CostoPor'], axis=1)
Gen1=Gen1.drop(['Squadra','Forza', 'Gen','Att','Dif','ForzaOff','ForzaDif','CostoPor'], axis=1)
return(Gen,Cov,Gen1,Cov1)
(Dif,CovDif,Att,CovAtt)=GeneraTabellaCovarianze(Sq,'DifAtt')
我期望这两个数据帧是不同的,但它们总是相同的。 事先谢谢你的帮助
Gen和Gen1引用相同的数据。改变一个可以被另一个看到。您应该在
Gen1=Fisso.copy()
中调用copy()
,以便它们变得独立:相关问题 更多 >
编程相关推荐