📜  python - 复制 df - Python (1)

📅  最后修改于: 2023-12-03 14:45:53.914000             🧑  作者: Mango

Python - 复制 DataFrame

当你需要复制一个 DataFrame 时,在 Python 中有几种方法可以实现。下面将介绍几种方法。

使用 copy() 方法

使用 DataFrame 的 copy() 方法可以创建一个 DataFrame 的副本。原始 DataFrame 和副本之间是完全独立的,副本的任何更改都不会影响原始 DataFrame。下面是一个示例:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})

# 创建 df 的副本
df_copy = df.copy()

# 修改 df_copy 的值
df_copy.at[0, 'A'] = 100

# 打印 df 和 df_copy
print('df:')
print(df)
print('df_copy:')
print(df_copy)

输出:

df:
   A  B
0  1  a
1  2  b
2  3  c
df_copy:
     A  B
0  100  a
1    2  b
2    3  c

可以看到,修改副本后原始 DataFrame 并未受到影响。

使用 loc[] 方法

另一种复制 DataFrame 的方法是使用 loc[] 方法。这个方法将返回一个新的 DataFrame,其中包含 loc[] 操作符指定的行和列。如果不指定行,则返回原始 DataFrame 的所有行。下面是一个示例:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})

# 创建 df 的副本
df_copy = df.loc[:, :]

# 修改 df_copy 的值
df_copy.at[0, 'A'] = 100

# 打印 df 和 df_copy
print('df:')
print(df)
print('df_copy:')
print(df_copy)

输出:

df:
   A  B
0  1  a
1  2  b
2  3  c
df_copy:
     A  B
0  100  a
1    2  b
2    3  c

可以看到,使用 loc[] 方法复制 DataFrame 也可以实现相同的效果。

使用 DataFrame() 构造函数

使用 DataFrame() 构造函数可以从另一个 DataFrame 创建一个新的 DataFrame。下面是一个示例:

import pandas as pd

# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': ['a', 'b', 'c']})

# 创建 df 的副本
df_copy = pd.DataFrame(df)

# 修改 df_copy 的值
df_copy.at[0, 'A'] = 100

# 打印 df 和 df_copy
print('df:')
print(df)
print('df_copy:')
print(df_copy)

输出:

df:
   A  B
0  1  a
1  2  b
2  3  c
df_copy:
     A  B
0  100  a
1    2  b
2    3  c

可以看到,使用 DataFrame() 构造函数也可以实现相同的效果。

以上就是几种在 Python 中复制 DataFrame 的方法。根据情况选择最合适的方法来复制您的 DataFrame。