📅  最后修改于: 2023-12-03 14:45:53.914000             🧑  作者: Mango
当你需要复制一个 DataFrame 时,在 Python 中有几种方法可以实现。下面将介绍几种方法。
使用 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 并未受到影响。
另一种复制 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。下面是一个示例:
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。