我正尝试按照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