从父数据帧中选择子数据帧时,我注意到一些程序员使用 .copy()
方法复制数据帧。例如,
X = my_dataframe[features_list].copy()
…而不仅仅是
X = my_dataframe[features_list]
他们为什么要复制数据框?如果我不复制会怎样?
原文由 Elizabeth Susan Joseph 发布,翻译遵循 CC BY-SA 4.0 许可协议
从父数据帧中选择子数据帧时,我注意到一些程序员使用 .copy()
方法复制数据帧。例如,
X = my_dataframe[features_list].copy()
…而不仅仅是
X = my_dataframe[features_list]
他们为什么要复制数据框?如果我不复制会怎样?
原文由 Elizabeth Susan Joseph 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答4.3k 阅读✓ 已解决
2 回答866 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答867 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.6k 阅读
3 回答910 阅读✓ 已解决
这扩展了保罗的回答。在 Pandas 中,对 DataFrame 进行索引会返回对初始 DataFrame 的引用。因此,更改子集将更改初始 DataFrame。因此,如果要确保初始 DataFrame 不应该更改,则需要使用副本。考虑以下代码:
你会得到:
相反,以下保持 df 不变:
这个答案在新版本的熊猫中已被弃用。查看 文档