Учитывая два кадра данных (которые могут содержать несколько строк с одинаковым идентификатором):
import pandas as pd
from io import StringIO
df1 = pd.read_csv(StringIO("""
userid,a,b,c,email_work
1,0,0,0,a@a.com
2,0,0,0,b@b.com
3,0,0,0,c@c.com
4,0,0,0,d@d.com
4,0,0,0,e@e.com"""))
df2 = pd.read_csv(StringIO("""
id,A,B,email_personal,email_other
2,0,0,b@b.com,f@f.com
4,0,0,g@g.com"""))
Я хотел бы получить список (или лучше: набор) всех адресов электронной почты для каждого пользователя:
userid,emails
1,[a@a.com]
2,[b@b.com, f@f.com]
3,[c@c.com]
4,[d@d.com, e@e.com, g@g.com]
(Я пробовал разные вещи с merge
, join
, concatenate
, но без успеха у меня нет четкого представления о решении pythoni c.)
Как объединить 2 кадра данных и создать список / набор значений относительно нескольких столбцов (здесь email_work
, email_personal
, email_other
)?