【发布时间】:2020-09-12 07:56:54
【问题描述】:
我是 python 新手,对为什么会发生以下情况感到非常困惑 -
- 我从数据帧 df1 开始
- 我将它复制并命名为 df2
- 我更改了副本中的一个值 (df2)
- 这也会改变 df1 中的值!
这是我在 stackoverflow 上的另一个问题中找到的代码的修改版本(原始问题在这里:Replace single value in a pandas dataframe, when index is not known and values in column are unique):
# Create a dataframe df1
df1 = pd.DataFrame([[5, 2], [3, 4]], columns=('a', 'b'))
#print df1
df1
a b
0 5 2
1 3 4
# copy it into df2
df2=df1
#print df2
df2
a b
0 5 2
1 3 4
# modify the value in df2 in column b where column a is 3
df2.loc[df2.a == 3, 'b'] = 6
# print df2 to check that the value has changed
df2
a b
0 5 2
1 3 6
# BUT changing df2 changed df1 also! Print df1
df1
a b
0 5 2
1 3 6
有人可以解释一下吗?谢谢
【问题讨论】:
-
你还没有复制,只是对同一个
DataFrame的另一个名字,试试df1.copy() -
非常感谢!不知道它只是给它分配了另一个名字