确保复制DataFrame(熊猫)的最佳实践

时间:2019-08-04 22:30:18

标签: python pandas dataframe copy

我有一个熊猫DataFrame projthemes_df,其中包含三列。

enter image description here

我想将它分成2列的DataFrame。我一直在使用这样的代码,因为这代表了我最常看到的示例:

theme_by_code_df = projthemes_df[['code', 'name']]

这有效。

enter image description here

生成的DF中有重复项。

当我尝试

theme_by_code_df.drop_duplicates(inplace=True)

我遇到一个错误:

enter image description here

显然,该错误是基于Returning a view versus a copy的(尽管错误消息中的链接不正确)。

问题:

我一直在使用

df2 = df1[['a', 'b', 'c']]

认为我在df2中获得了新的DF。糟糕!

enter image description here

那么,确保我可以安全修改的DF的最佳实践是什么?

我认为在进行选择之前初始化一个空的数据帧是可行的,但是我在此代码中遇到了同样的错误。

tmp = pd.DataFrame()
tmp = projthemes_df[['code', 'name']]
tmp.drop_duplicates(inplace=True)

这合理吗?有什么简单/更好的东西吗?

tmp = pd.DataFrame(projthemes_df[['code', 'name']])

1 个答案:

答案 0 :(得分:3)

使用.copy()方法。 它将创建数据的副本,而不是为您提供原始数据框的一部分。

   tmp = projthemes_df[['code', 'name']].copy()