根据给定索引合并两个数据帧中的元素

时间:2019-11-13 12:38:39

标签: pandas dataframe pandas-groupby

给出两个数据框:

idx_A | item_A       | req_idx_B
1        'dog'           0
2        'cat'           3
3        'fish'          1
4        'weasel'        1
5        'wolf'          0
6        'dinosaur'      3

idx_B | item_B      
1        'red'           
2        'blue'           
3        'green'    

item_Bitem_A相同时,我想将req_idx_B附加到所有idx_B。如果为req_idx_B = 0,则应仅忽略该行。所以结果应该是:

idx_A |          item_A          |
1        'dog'
2        'cat, green, dinosaur'
3        'fish, red, weasel'
4        'weasel, red, fish'
5        'wolf'
6        'dinosaur, cat, green'

item_A列的最终格式是字符串,并且顺序完全无关紧要,只要它包含所有元素即可。

请注意,由于“猫”和“恐龙”都具有相同的req_idx_B,因此将它们与第二个数据帧中的相应元素连接在一起。

1 个答案:

答案 0 :(得分:1)

在所有不匹配掩码的行中将GroupBy.transformjoin一起使用,从第二个DataFrame中添加,Series.map的值,最后用{{ 1}}:

item_A