我对论点有点糊涂copy在DataFrame.merge()后一个同事问我这个问题.
的文档字符串DataFrame.merge()状态:
copy : boolean, default True
If False, do not copy data unnecessarily
Run Code Online (Sandbox Code Playgroud)
该大熊猫文档状态:
copy:始终True从传递的DataFrame对象复制数据(默认),即使不需要重建索引也是如此.在许多情况下无法避免,但可能会提高性能/内存使用率.可以避免复制的情况在某种程度上是病态的,但仍然提供了这种选择.
文档字符串意味着复制数据不是必需的,并且几乎总是可以跳过.另一方面,该文件说,在许多情况下无法避免复制数据.
我的问题是:
我有一个大数据框df和一个小数据框,df_right有 2 列a和b. 我想在a不复制的情况下进行简单的左连接/查找df。
我想出了这段代码,但我不确定它有多健壮:
dtmp = pd.merge(df[['a']], df_right, on = 'a', how = "left") #one col left join
df['b'] = dtmp['b'].values
Run Code Online (Sandbox Code Playgroud)
我知道当有重复的键时它肯定会失败:pandas left join - 为什么会有更多的结果?
有没有更好的方法来做到这一点?
有关的: