Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas.series.copy不';不要创建新对象_Python_Pandas_Series - Fatal编程技术网

Python pandas.series.copy不';不要创建新对象

Python pandas.series.copy不';不要创建新对象,python,pandas,series,Python,Pandas,Series,我使用熊猫版本0.12.0。以及以下代码,用于移动复制序列的索引: import pandas as pd series = pd.Series(range(3)) series_copy = series.copy() series_copy.index += 1 如果我现在访问系列,它也会移动索引。为什么?copy被定义为对底层数组进行复制的助手,而函数不复制索引。请参阅源代码: Definition: series.copy(self, order='C') Source: de

我使用熊猫版本0.12.0。以及以下代码,用于移动复制序列的索引:

import pandas as pd
series = pd.Series(range(3))
series_copy = series.copy()
series_copy.index += 1

如果我现在访问
系列
,它也会移动索引。为什么?

copy
被定义为对底层数组进行复制的助手,而函数不复制索引。请参阅源代码:

Definition: series.copy(self, order='C')
Source:
    def copy(self, order='C'):
        """
        Return new Series with copy of underlying values

        Returns
        -------
        cp : Series
        """
        return Series(self.values.copy(order), index=self.index,
                      name=self.name)
索引仍由施工部门共享。如果您想要更深入的副本,那么只需直接使用
系列
构造函数:

series = pd.Series(range(3))
    ...: series_copy = pd.Series(series.values.copy(), index=series.index.copy(),
    ...:                           name=series.name)
    ...: series_copy.index += 1

series
Out[72]: 
0    0
1    1
2    2
dtype: int64

series_copy
Out[73]: 
1    0
2    1
3    2
dtype: int64

在0.13中,
copy(deep=True)
是copy的默认界面,可以解决您的问题。()

不知道这是一个bug还是什么,但是如果你检查索引是否相等,你会看到series\u copy.index等于series.index-
series.index.equals(series\u copy.index)
返回
True