我目前正在从事一个涉及要合并的巨大数据帧的项目。以下代码:
mergeddf = pd.merge(left=leftDataFrame,right=rightDataFrame,right_on = rightKey, left_on = leftKey, how='outer', suffixes = [leftName,rightName], indicator=True)
返回一个名为“\u merge”(由于选项indicator=True)的列的合并数据帧,该列指示该行是否存在于“left\u only”、“right\u only”或“both”中
然而,我发现合并需要很多时间,特别是当有许多列以及可能的行时(我在有18列的50K行的块上运行这个)。我在Improve Pandas Merge performance中尝试的另一种方法是将我的“键”列设置为作为索引连接,然后使用df.join(df2,how='outer')
,它的运行速度明显更快
但我的问题是join()没有返回我绝对需要的“_merge”指示符列。当使用join()
时,是否有任何方法可以获取关于哪个行属于哪个数据帧(或两者)的信息
@ayhan在我面前做出了正确的评论,但这里有一个详细说明:
根据文件(https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html):
深入研究代码,您会发现the code不仅仅是一个围绕merge的包装器,它更为复杂,但join的核心功能是通过these lines捕获的:
相关问题 更多 >
编程相关推荐