欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pandas分组之后对相同group内的字段进行合并

程序员文章站 2022-07-08 15:44:12
背景在pandas中对数据进行分组后,想要对相同组的数据进行其他字段的合并。类似场景:有2个字段,分别是文本内容和标签值。先根据文本内容进行分组,再对同一个组内的标签值进行合并,从而得到多标签值。实施测试: import pandas as pd df = pd.DataFrame({'text': ['华中科技大学', '武汉大学', '清华大学', '华中科技大学', '武汉大学'], 'label': ["985,理工", "985"...

背景

在pandas中对数据进行分组后,想要对相同组的数据进行其他字段的合并。类似场景:有2个字段,分别是文本内容和标签值。先根据文本内容进行分组,再对同一个组内的标签值进行合并,从而得到多标签值。

实施

测试:

    import pandas as pd
    df = pd.DataFrame({'text': ['华中科技大学', '武汉大学', '清华大学', '华中科技大学', '武汉大学'],
                       'label': ["985,理工", "985", "北京", "武汉", "武汉"]})
    print("初始df:")
    print(df)
    new_df = df.groupby(['text'])
    new_df = new_df['label'].apply(lambda x: ",".join(list(set(x.str.cat(sep=',').split(','))))).reset_index()
    print("同组text,合并label之后的df:")
    print(new_df)

输出结果:

初始df:
     text   label
0  华中科技大学  985,理工
1    武汉大学     985
2    清华大学      北京
3  华中科技大学      武汉
4    武汉大学      武汉
同组text,合并label之后的df:
     text      label
0  华中科技大学  武汉,985,理工
1    武汉大学     武汉,985
2    清华大学         北京


本文地址:https://blog.csdn.net/ljp1919/article/details/112654553