pandas深拷贝浅拷贝

在Pandas中,对DataFrame进行赋值可能涉及深拷贝和浅拷贝。浅拷贝只复制对象引用,而深拷贝会创建数据的副本。文章通过示例展示了直接赋值是浅拷贝,修改数据会影响所有关联对象,而使用`copy()`函数可以实现深拷贝,确保修改不会影响原始数据。
摘要由CSDN通过智能技术生成

pandas深拷贝浅拷贝

写pandas时,经常会出现把一个dataframe赋值给另一个dataframe的写法,

import pandas as pd
data = {'A': [1, 2, 3],
 'B': [['厉害', '真棒'], ['值得鼓励', '继续加油'], ['相信未来--勇闯天涯']],
 'C': [{'key': '试一试', 'value': 'try'}, {'key': '看一看', 'value': 'look'}, {'key': '拍一拍', 'value': 'tickle'}]}
df = pd.DataFrame(data)
df_shallow = df.copy(deep=False) # 浅复制
df_copy = df.copy() # 深复制
df2 = df     #浅拷贝

print(id(df_copy),id(df_shallow),id(df), id(df2))
#输出:1953213900488 1953285022408 1953240843848 1953240843848

可以看到,直接赋值是浅拷贝,深拷贝使用df.copy(). 当使用浅拷贝时,修改了一个dataframe的数据,另一个会跟着修改
在这里插入图片描述

df2['A'].iloc[0] = 2

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
df,df_shallow, df2三者保持一致,df_copy是深拷贝
参考:https://blog.csdn.net/weixin_46281427/article/details/123617945

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值