我有3个数据帧df1,df,df3都在复制原始数据帧df0。
df1=df0
df2=df0
df3=df0
df1=dfo.iloc[1:,1:].div(dfo.iloc[1:,1:].sum(axis=1),axis=0)
df2=dfo.iloc[1:,1:].div(dfo.iloc[1:,1:].sum(axis=1),axis=0)*ACCOUNT_CASH
df3=df2//df0
print(df1)
print(df2)
print(df3)
不知怎么的,这不起作用,我没有得到错误,但当我打印df1 df2 df3我的所有数据帧是相同的!但是它们不同于df0,是因为它们都指向内存中的同一个空间,所以更改任何指针实际上都会修改所有变量吗?如果是这样的话,我怎么能让它工作得很好。我试着抄袭(deep=True)但没有结果。谢谢
最佳答案
你的台词
df1=df0
df2=df0
df3=df0
只需创建三个新绑定,其中三个新名称引用与
df0
绑定到的对象相同的对象。要实际创建副本,请使用
pd.DataFrame.copy
:df1=df0.copy()
df2=df0.copy()
df3=df0.copy()