用法:
DataFrame.copy(deep=True)
制作此对象的索引和数据的副本。
当
deep=True
(默认)时,将使用调用对象的数据和索引的副本创建一个新对象。对副本的数据或索引的修改不会反映在原始对象中(请参阅下面的注释)。当
deep=False
时,将创建一个新对象,而不复制调用对象的数据或索引(仅复制对数据和索引的引用)。对原始数据的任何更改都将反映在浅拷贝中(反之亦然)。- deep:布尔值,默认为真
制作深层副本,包括数据和索引的副本。使用
deep=False
既不复制索引也不复制数据。
- copy:Series或DataFrame
对象类型匹配调用者。
参数:
返回:
注意:
当
deep=True
时,会复制数据,但不会递归复制实际的 Python 对象,只会复制对对象的引用。这与标准库中的copy.deepcopy
形成对比,后者递归地复制对象数据(参见下面的示例)。虽然在
deep=True
时复制了Index
对象,但出于性能原因,不会复制底层的 numpy 数组。由于Index
是不可变的,因此可以安全地共享底层数据并且不需要副本。例子:
>>> s = pd.Series([1, 2], index=["a", "b"]) >>> s a 1 b 2 dtype:int64
>>> s_copy = s.copy() >>> s_copy a 1 b 2 dtype:int64
浅拷贝与默认(深)拷贝:
>>> s = pd.Series([1, 2], index=["a", "b"]) >>> deep = s.copy() >>> shallow = s.copy(deep=False)
浅拷贝与原始拷贝共享数据和索引。
>>> s is shallow False >>> s.values is shallow.values and s.index is shallow.index True
深拷贝有自己的数据和索引副本。
>>> s is deep False >>> s.values is deep.values or s.index is deep.index False
浅拷贝和原始共享的数据的更新都反映在两者中;深拷贝保持不变。
>>> s[0] = 3 >>> shallow[1] = 4 >>> s a 3 b 4 dtype:int64 >>> shallow a 3 b 4 dtype:int64 >>> deep a 1 b 2 dtype:int64
请注意,当复制包含 Python 对象的对象时,深复制将复制数据,但不会递归地这样做。更新嵌套数据对象将反映在深层副本中。
>>> s = pd.Series([[1, 2], [3, 4]]) >>> deep = s.copy() >>> s[0][0] = 10 >>> s 0 [10, 2] 1 [3, 4] dtype:object >>> deep 0 [10, 2] 1 [3, 4] dtype:object
相关用法
- Python pandas.DataFrame.combine_first用法及代码示例
- Python pandas.DataFrame.convert_dtypes用法及代码示例
- Python pandas.DataFrame.corr用法及代码示例
- Python pandas.DataFrame.count用法及代码示例
- Python pandas.DataFrame.cov用法及代码示例
- Python pandas.DataFrame.compare用法及代码示例
- Python pandas.DataFrame.combine用法及代码示例
- Python pandas.DataFrame.cumsum用法及代码示例
- Python pandas.DataFrame.cummin用法及代码示例
- Python pandas.DataFrame.cumprod用法及代码示例
- Python pandas.DataFrame.clip用法及代码示例
- Python pandas.DataFrame.cummax用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
- Python pandas.DataFrame.rename用法及代码示例
- Python pandas.DataFrame.to_numpy用法及代码示例
- Python pandas.DataFrame.dtypes用法及代码示例
- Python pandas.DataFrame.truncate用法及代码示例
- Python pandas.DataFrame.sparse.from_spmatrix用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.copy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。