Объединить строки DataFrame Python 3, которые разделяют значение ячейки, поместив другое значение в массив через запятую - PullRequest
2 голосов
/ 23 марта 2019

У меня есть Python DataFrame, где дублируются электронные письма.Я хотел бы найти все дубликаты и объединить их, чтобы к письму был прикреплен массив номеров счетов.Я также хотел бы сохранить 3-й столбец в объединенном столбце.

AccountID Email                    Quality_3

1         blue@somedomain.com      High
2         red@somedomain.com
3         blue@somedomain.com      
4         green@somedomain.com     Medium
5         blue@somedomain.com
6         red@somedomain.com         
7         blue@somedomain.com
8         green@somedomain.com



AccountID         Email                  Quality_3
1, 3, 5, 7        blue@somedomain.com    High
2, 6              red@somedomain.com
4, 8              green@somedomain.com   Medium

Я смотрю на левые и правые соединения, но не могу понять это.

1 Ответ

2 голосов
/ 23 марта 2019

Попробуйте это:

df_new=(df.astype(str).groupby('Email')['AccountID','Quality_3']
    .agg({'AccountID':lambda x: ','.join(x),'Quality_3':'first'}).reset_index())
print(df_new)

                  Email AccountID Quality_3
0   blue@somedomain.com   1,3,5,7      High
1  green@somedomain.com       4,8    Medium
2    red@somedomain.com       2,6      None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...