pandas的dataframe赋值操作,如何复制dataframe对象?
发布于 作者:苏南大叔 来源:程序如此灵动~

在大多数情况下,如果A
等于B
,然后修改了B
,A
并不会受到影响,对吧?但是,在pandas
的dataframe
数据里面,这个推论则是不存在的。这个情况到底是怎么回事呢?本文继续苏南大叔的dataframe
操作。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文中,将以代码对比的形式,看看pandas
的dataframe
数据赋值操作的一些注意事项。本文测试环境:win10
,python@3.6.8
,pandas@1.1.5
。
代码对比
测试环境是python
,普通的字符串赋值操作。
执行结果是:
可以看到A
和B
是两个不同的变量,相互不影响。
换成dataframe
的赋值操作。
直接结果是:
可以看到当类型换成dataframe
的时候,两者变成相互影响了。
正确的操作方式
对于dataframe
来说,这样的需求应该使用.copy()
来完成。范例代码:
执行结果:
核心代码:
错误的推论
值得一提的是,这个.copy()
并不是存在于任何对象之上。比如字符串上就没有这个.copy()
操作。
测试代码:
报错如下:
参考文献
- https://newsn.net/say/php-clone.html
- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.copy.html
总结
pandas
的dataframe
对象,不按常理出牌,导致新人掉进陷阱。更多pandas
的代码使用经验文章,请点击:


