用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。