在看一篇资料的时候.有两处代码.
for data in [data_train, data_test_a]:
data['grade'] = data['grade'].map({'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7})
这个代码可以查看data_train
,可查看到数据修改.
但下面的代码
for data in [data_train, data_test_a]:
data = pd.get_dummies(data, columns=['subGrade', 'homeOwnership',
'verificationStatus', 'purpose', 'regionCode'])
查看data_train
却无法查看到数据修改.
利用id()查看内存,可以发现
第一个代码:经过map修改后,data[‘grade’]指向了新的内存地址,但是仍然可以通过data_train[‘grade’]找到该内存地址.
第二个代码:经过get_dummie后,data 指向了新的内存地址,但data_train仍指向原来的内存地址,所以无法找到data指向的新的内存地址,所以修改无效.
Python 深拷贝和浅拷贝详解