【问题标题】:What is the use of pd.concat's copy=True?pd.concat的copy=True有什么用?
【发布时间】:2021-02-20 11:24:32
【问题描述】:

我阅读了以下关于 pandas.concat 函数 documentation 中的复制参数的内容:

复制:bool,默认为True
如果为False,则不要不必要地复制数据。

问题:

  1. 为什么有人要不必要地复制数据? (这似乎是因为默认是True
  2. 设置copy=False有什么缺点吗?

【问题讨论】:

  • 考虑到当您有多个大型数据帧且内存不足时,您可能只想连接数据帧而不进行深度复制

标签: python copy concatenation pandas


【解决方案1】:

好吧,在 python 中有两种类型的副本

1.深拷贝

2.浅拷贝

所以基本上pd.concat() 中的复制参数默认定义相同,它会创建一个deep copy,但如果你用False 覆盖它的值,它会创建Shallow copy

注意:-在deep copy 中创建了一个精确的副本,因此如果您对原始变量进行任何更改,它不会反映在您的副本中,但在shallow copy 中它会反映在您的副本中,因为在shallow copy数据引用原始数据

【讨论】:

  • 好的,我明白了,所以copy=Falsedf = pd.concat([df, df2], axis=1, copy=False) 等情况下可以毫无问题地使用,因为无论如何都会覆盖原件。
  • 好吧,我不这么认为 copy=False 会导致任何问题,直到您对原始值数据进行任何更改
猜你喜欢
  • 2022-11-24
  • 2013-02-26
  • 1970-01-01
  • 2014-07-25
  • 2012-08-16
  • 2010-10-10
  • 2020-07-01
  • 1970-01-01
相关资源
最近更新 更多