按lis分组的数据帧

2024-09-29 01:19:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的数据框和人名及其缩写。目的是执行名称消歧:

    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行。后来我打算用名字做一些类似的事情


Tags: 数据目的名称namesfar消歧zammic
2条回答

map

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

我这样做是因为列表是不可散列的对象

如果想要groupbylist,需要先将列转换为元组:

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]

相关问题 更多 >