在一个数据框中添加列会更新另一列?

时间:2018-08-17 20:59:03

标签: pandas

我正尝试按照here中的说明向数据框添加一列。 我可以做到,但是在更新主数据框之前,我想通过创建它的副本进行一些测试,以便可以进行试验。但是,我的原始数据帧也被更新了,这是不希望的(主数据帧是从类似100个具有多个索引的csv文件生成的,并且具有大约2600列和2500行)。

为说明起见,请参见下面的模拟数据:

主数据帧为df1

要播放的副本是df2

我添加的数据为Ser

设置:

import pandas as pd

df1 = pd.DataFrame({'B': [1, 2, 3], 'C': [4, 5, 6]})
Ser = pd.Series(data=[10,11,12], name='Add')

df2 = df1

df1和df2

    B     C
0   1     4
1   2     5
2   3     6

使用Ser更新df2

df2['New'] = Ser
df2

    B     C     New
0   1     4     10
1   2     5     11
2   3     6     12

现在,df1:

df1

    B     C     New
0   1     4     10
1   2     5     11
2   3     6     12

很奇怪。我还使用了drop方法从df2中删除了列。它正常工作,没有碰到df1。但是,一旦我使用方法df2['NewNew'] = Ser添加了另一列,它就会重新更新我的df1

df2.drop(columns='New', axis=1)
df2['NewNew'] = Ser

这是我的新df1和df2。

    B     C     New     NewNew
0   1     4     10      10
1   2     5     11      11
2   3     6     12      12

0 个答案:

没有答案