Pandas DataFrame 的 copy() 方法

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 pandas 的 DataFrame 类中使用 copy() 方法。copy() 方法允许我们复制一个 DataFrame 对象,而不会修改原始 DataFrame。我们将探讨 copy() 方法的语法和参数,并提供示例来说明其用法。

虚拟机提示

虚拟机启动完成后,点击左上角切换到 Notebook 选项卡以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,可以随时向 Labby 寻求帮助。请在实验结束后提供反馈,我们将及时为你解决问题。

创建 DataFrame

首先,我们需要导入 pandas 库并创建一个 DataFrame 对象。

import pandas as pd

df = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': ['d', 'e', 'f']})
print(df)

输出:

   A  B
0  a  d
1  b  e
2  c  f

使用 copy() 方法复制 DataFrame

接下来,我们可以使用 copy() 方法创建 DataFrame 对象的副本。

df1 = df.copy()
print(df1)

输出:

   A  B
0  a  d
1  b  e
2  c  f

修改复制的 DataFrame

我们可以修改复制的 DataFrame,而不会影响原始 DataFrame。

df1['A'] = df1['A'].replace(['b'], 'x')
print(df1)
print(df)

输出:

   A  B
0  a  d
1  x  e
2  c  f

   A  B
0  a  d
1  b  e
2  c  f

使用 copy() 方法创建浅拷贝(deep=False

默认情况下,copy() 方法执行的是深拷贝(deep copy),会创建一个包含数据和索引副本的新对象。然而,我们也可以通过设置 deep=False 参数来创建浅拷贝(shallow copy)。

df1 = df.copy(deep=False)
df1['A'] = df1['A'].replace(['b'], 'x')
print(df1)
print(df)

输出:

   A  B
0  a  d
1  x  e
2  c  f

   A  B
0  a  d
1  x  e
2  c  f

总结

在本实验中,我们学习了如何在 pandas 的 DataFrame 类中使用 copy() 方法。copy() 方法允许我们创建 DataFrame 对象的副本,而不会修改原始 DataFrame。我们探讨了如何使用 copy() 方法创建副本,以及如何修改复制的 DataFrame。此外,我们还了解了 deep 参数,它控制是创建深拷贝(deep copy)还是浅拷贝(shallow copy)。默认情况下会创建深拷贝,但可以通过设置 deep=False 来创建浅拷贝。通过理解 copy() 方法,我们可以在不影响原始数据的情况下操作 DataFrame 对象。