Pandas series.copy() 方法如何工作

Pandas series.copy() 方法如何工作

pandas.Series.copy() 方法用于创建系列对象的索引和数据(值)的副本。它将返回一个拷贝的系列对象作为结果。

copy() 方法有一个参数,即 “deep”。 这个 deep 参数的默认值是 True。 当 deep 参数的输入为 “True” 时,它意味着 copy 方法会深度复制给定系列的索引和数据。

如果 deep 参数的输入为 “False”,那么就意味着 copy 方法在创建对象时不会复制给定系列对象的数据和索引(只复制数据和索引的引用)。

示例1

import pandas as pd

index = list("WXYZ")

#create a pandas Series
series = pd.Series([98,23,43,45], index=index)

print(series)

# create a copy
copy_sr = series.copy()

print("Copied series object:",copy_sr)

# update a value
copy_sr['W'] = 55

print("objects after updating a value: ")
print(copy_sr)

print(series)

解释

首先,我们使用带有标记索引“W,X,Y,Z”的整数值列表创建了一个pandas系列。然后创建了一个复制的系列对象,其深度参数的默认值为“True”。

输出

W 98
X 23
Y 43
Z 45
dtype: int64

Copied series object:
W 98
X 23
Y 43
Z 45
dtype: int64

objects after updating a value:
W 55
X 23
Y 43
Z 45

dtype: int64
W 98
X 23
Y 43
Z 45
dtype: int64

在上面的输出块中,我们可以看到初始的series对象和复制的对象。在创建副本之后,我们在索引位置“W”处的复制对象中更新了一个值“55”。我们在复制的Series对象中所做的更改不会影响原始的Series。

示例2

import pandas as pd

index = list("WXYZ")

#create a pandas Series
series = pd.Series([98,23,43,45], index=index)

print(series)

# create a copy
copy_sr = series.copy(deep=False)

print("Copied series object:",copy_sr)

copy_sr['W'] = 55

print("objects after updating a value: ")
print(copy_sr)

print(series)

说明

在这个示例中,我们将deep参数的默认值从True更改为False。因此,copy方法将使用索引和数据的引用ID复制Series对象。

如果我们对任何一个Series对象进行任何更改,这些更改也会反映在其他的系列对象上。

输出

W 98
X 23
Y 43
Z 45
dtype: int64

Copied series object: W 98
X 23
Y 43
Z 45
dtype: int64

objects after updating a value:
W 55
X 23
Y 43
Z 45
dtype: int64

W 55
X 23
Y 43
Z 45
dtype: int64

在创建了副本之后,我们只更新了副本系列中索引位置”W”处的值为”55″,但是这些改变也反映在原始系列中。我们可以在上面的输出块中看到这些差异。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记