我有一个熊猫DataFrame projthemes_df
,其中包含三列。
我想将它分成2列的DataFrame。我一直在使用这样的代码,因为这代表了我最常看到的示例:
theme_by_code_df = projthemes_df[['code', 'name']]
这有效。
生成的DF中有重复项。
当我尝试
theme_by_code_df.drop_duplicates(inplace=True)
我遇到一个错误:
显然,该错误是基于Returning a view versus a copy的(尽管错误消息中的链接不正确)。
问题:
我一直在使用
df2 = df1[['a', 'b', 'c']]
认为我在df2中获得了新的DF。糟糕!
那么,确保我可以安全修改的DF的最佳实践是什么?
我认为在进行选择之前初始化一个空的数据帧是可行的,但是我在此代码中遇到了同样的错误。
tmp = pd.DataFrame()
tmp = projthemes_df[['code', 'name']]
tmp.drop_duplicates(inplace=True)
这合理吗?有什么简单/更好的东西吗?
tmp = pd.DataFrame(projthemes_df[['code', 'name']])
答案 0 :(得分:3)
使用.copy()方法。 它将创建数据的副本,而不是为您提供原始数据框的一部分。
tmp = projthemes_df[['code', 'name']].copy()