我是python的新手。 我不理解pandas在将pd.DataFrame分配给新变量时遵循的原则。 在下面的示例中,我希望a保留其值,并在将新元素添加到b后不会更改。 下面有一个与np.array类似的例子,它展示了预期的行为。 有人可以对此有所了解吗?
谢谢!
<div class="content_center col-md-6">
What I want
</div>
答案 0 :(得分:1)
执行b=a
时,a
和b
都是对完全相同的对象的引用。通过一个名称进行的任何更改都可以通过另一个名称同样显示。
d=c
的情况略有不同,因为您之后将d
重新分配给np.append()
的结果,该结果记录为始终返回一个新对象(而不是修改对象)地点)。从那时起,c
和d
是独立的对象。
答案 1 :(得分:0)
您可以尝试:
b = a.copy()
然后b在修改a时不会改变,因为它们引用了两个不同的对象。
回到问题,a和b引用同一个对象,b.loc[b.index.max() + 1] = [30,'M']
只修改对象,因此print(a)
和print(b)
都会发生变化。
当c和d引用同一个对象时,d = np.append(d,[[30,'M']], axis=0)
更新d,这意味着现在d引用一个新对象。但是c仍然指的是旧的对象。