Pandas датафрейм сгруппировать по спискам - PullRequest
0 голосов
/ 11 октября 2018

У меня есть следующий фрейм с именами людей и их сокращением.Цель состоит в том, чтобы выполнить устранение неоднозначности имени:

    Names                       Abb
0   Michaele Frendu             [Mic, Fre]
1   Lucam Zamit                 [Luc, Zam]
2   magistro Johanne Luckys     [Joh, Luc]
3   Albano Fava                 [Alb, Fav]
4   Augustino Bagliu            [Aug, Bag]
5   Lucas Zamit                 [Luc, Zam]
6   Jngabellavit                [Jng]
7   Micheli Frendu              [Mic, Fre]
8   Luce                        [Luc]
9   Far                         [Far]

Можно ли сгруппировать по списку, то есть: строки 1, 7 и строки 1,5.Позже я собирался сделать что-то подобное только с именами.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Или map:

df.groupby(df['Abb'].map(tuple)).do_something

Я делаю это, потому что список не является хеш-объектами

0 голосов
/ 11 октября 2018

Если хотите groupby list, необходимо сначала преобразовать столбец в кортежи:

def func(x):
    print (x)
    #some code
    return x

df1 = df.groupby(df['Abb'].apply(tuple)).apply(func)

         Names         Abb
3  Albano Fava  [Alb, Fav]
         Names         Abb
3  Albano Fava  [Alb, Fav]
              Names         Abb
4  Augustino Bagliu  [Aug, Bag]
  Names    Abb
9   Far  [Far]
          Names    Abb
6  Jngabellavit  [Jng]
                     Names         Abb
2  magistro Johanne Luckys  [Joh, Luc]
  Names    Abb
8  Luce  [Luc]
         Names         Abb
1  Lucam Zamit  [Luc, Zam]
5  Lucas Zamit  [Luc, Zam]
             Names         Abb
0  Michaele Frendu  [Mic, Fre]
7   Micheli Frendu  [Mic, Fre]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...