见下面的例子:
def func(arg):
print(id(arg))
df = pd.DataFrame(arg)
print(id(df))
df['b'] = [4,5,6]
a = pd.DataFrame( {'a' : [1,2,3]})
print(a, id(a))
func(a)
print(a)
a
0 1
1 2
2 3
681924702104
681924702104
681924718944
a b
0 1 4
1 2 5
2 3 6
调用函数后为什么要更改?我不明白,因为他们有不同的身份。解决这个问题的正确程序是什么?
答案 0 :(得分:2)
pd.DataFrame()
接受一个参数,指定是否应该复制数据。默认值为False
。如果您需要副本,请将其设置为True
:
df = pd.DataFrame(arg, copy=True)
这将修复你的例子。