给出两个数据框:
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_B
与item_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
,因此将它们与第二个数据帧中的相应元素连接在一起。
答案 0 :(得分:1)
在所有不匹配掩码的行中将GroupBy.transform
与join
一起使用,从第二个DataFrame中添加,
和Series.map
的值,最后用{{ 1}}:
item_A