小编典典

我为什么要在熊猫中复制数据框

python

当从父数据帧中选择子数据帧时,我注意到有些程序员使用该.copy()方法复制数据帧。例如,

X = my_dataframe[features_list].copy()

…而不只是

X = my_dataframe[features_list]

他们为什么要复制数据框?如果我不复制怎么办?


阅读 133

收藏
2020-12-20

共1个答案

小编典典

这扩展了保罗的答案。在Pandas中,为DataFrame编制索引将返回对初始DataFrame的引用。因此,更改子集将更改初始DataFrame。因此,如果要确保不更改初始DataFrame,则需要使用该副本。考虑以下代码:

df = DataFrame({'x': [1,2]})
df_sub = df[0:1]
df_sub.x = -1
print(df)

你会得到:

x
0 -1
1  2

相反,以下内容使df保持不变:

df_sub_copy = df[0:1].copy()
df_sub_copy.x = -1
2020-12-20