| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1950 人关注过本帖
标题:【新人请教】赋值到新对象再改value,为什么原对象也改了?
只看楼主 加入收藏
Log666
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2020-3-5
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
【新人请教】赋值到新对象再改value,为什么原对象也改了?
程序代码:
data = pd.DataFrame(np.arange(15).reshape(3,5),index=['a','b','c'], columns=['1','2','3','4','5'])
# 想尝试赋值到新对象再改个value,但是发现原对象data也被改了
data_change_value = data
data_change_value['1']['a'] = 'alpha' 
data_change_value


另外,请教一下,各位一般通过什么平台解答遇到的疑问呀?
能自己解决的还是希望自己解决,不麻烦别人
搜索更多相关主题的帖子: value data 对象 赋值 疑问 
2020-03-05 22:31
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:20 
额,,,,代码不完整吧,,,   我也是正在学Python,所以不靠谱地猜————

data_change_value = data   //这句话,是不是有可能并不是在复制data中的数据给data_change_value,而是data_change_value成了data的别名。
                    要复制的话,应该是要用构造函数,把data作为参数传进构造函数,才能生成一个复制品吧

像我现在接触的  datatime对象  ,它就都是用    新对象=旧对象.replace()  的方式去复制的

----------------------------------------
初学编程遇到的问题,一般都要靠人工解决的,一开始的时候代码短,拿着报错信息和代码来平台问人,比自己找快多了。
后面学的深了,可以自己去查技术文档。(这是Python的https://docs.)和引用的库,打开库文件也能看到原作者的注释(我英语不好,这个一直看不来)

φ(゜▽゜*)♪
2020-03-05 23:03
Log666
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2020-3-5
收藏
得分:0 
回复错地方了,当我不存在

[此贴子已经被作者于2020-3-5 23:13编辑过]

2020-03-05 23:12
Log666
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2020-3-5
收藏
得分:0 
回复 2楼 书生牛犊
确实诶,试了一下,直接复制的话相当于直接引用这个对象,而不是引用对象的值

程序代码:
# Dataframe的话,可以用 copy()
DataFrame.copy(deep=True) # 默认是True,复制值;False相当于引用,原值改变复制的结果随着改变


完结了

[此贴子已经被作者于2020-3-6 10:27编辑过]

2020-03-06 10:26
快速回复:【新人请教】赋值到新对象再改value,为什么原对象也改了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041736 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved