我有这个数据帧:
FamilyVsWWTotal = pd.DataFrame({'date':['2011-4-3','2011-3-5','2011-4-3','2011-5-7'], 'Country':['USA','CAN','USA','MEX']})
因此它将有以下输出:
date Country
2011-4-3 USA
2011-3-5 CAN
2011-4-3 USA
2011-5-7 MEX
下面的代码是2创建的表1:
Table1=FamilyVsWWTotal
Table1['Region']='K'
因此,表1将有以下输出:
date Country Region
2011-4-3 USA K
2011-3-5 CAN K
2011-4-3 USA K
2011-5-7 MEX K
对于第二个表,即表2:
Table2=FamilyVsWWTotal
Table2['aveAge']=60
因此,表2的输出应该是这样的:
date Country aveAge
2011-4-3 USA 60
2011-3-5 CAN 60
2011-4-3 USA 60
2011-5-7 MEX 60
但我总是面临这样一个问题,即表2的输出将是这样的,它已经混淆了上面的代码:
表2
date Country Region aveAge
2011-4-3 USA K 60
2011-3-5 CAN K 60
2011-4-3 USA K 60
2011-5-7 MEX K 60
任何人都能提出一些解决这个问题的办法吗
执行
Table1=FamilyVsWWTotal
会导致浅拷贝。这两个变量链接到内存中的同一个DataFrame对象您可以通过以下方式进行检查:
如果需要两个单独的数据帧,在其中可以进行单独的计算,则必须执行深度复制,如下所示:
由于
deep=True
是copy()
的默认值,您只需同样地
因此,您的代码应该如下所示:
Use
.assign
返回一个新的数据帧或者,在
copy
上工作您需要为新的} ,因为其他使用相同对象的操作(不使用copy不是值的
DataFrame
对象使用^{copied
,而是创建一个新的reference
,所以id
是相同的):仍然修改原始数据帧
FamilyVsWWTotal
:相关问题 更多 >
编程相关推荐