繁体   English   中英

与熊猫合并两个不同的数据框

[英]Merge Two different dataframe with Pandas

我是熊猫新手,我需要完成以下任务,有没有有效的方法来做? 有2个不同的数据帧dfa和dfb: dfa

dfb

我用它来将它们合并在一起:

df = pd.merge(dfa, dfb, left_on = ['a_retry','a_cca', 'a_rssif', 'a_lqif'], right_on = ['b_retry','b_cca', 'b_rssif', 'b_lqif'])

我得到了df输出: df

但是,这不是我的期望。 合并的数据帧包含所有列,可以,但是行不得超过较小的行(也称为dfa),这意味着必须删除第3行,预期的是: 在此处输入图片说明 我怎样才能做到这一点? 谢谢。

可以预期,因为每4列都有重复项。

因此需要通过drop_duplicates删除重复的行:

dfa = dfa.drop_duplicates(subset=['a_retry','a_cca', 'a_rssif', 'a_lqif'])
dfb = dfb.drop_duplicates(subset=['b_retry','b_cca', 'b_rssif', 'b_lqif'])

但是,如果需要匹配重复行,是否可以使用cumcount new column进行merge

dfa['new'] = dfa.groupby(['a_retry','a_cca', 'a_rssif', 'a_lqif']).cumcount()
dfb['new'] = dfb.groupby(['b_retry','b_cca', 'b_rssif', 'b_lqif']).cumcount()

df = (pd.merge(dfa, 
               dfb, 
               left_on = ['a_retry','a_cca', 'a_rssif', 'a_lqif', 'new'], 
               right_on = ['b_retry','b_cca', 'b_rssif','b_lqif', 'new']).drop('new', axis=1))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM