使用熊猫基于其他列中的值来连接值

时间:2019-10-31 00:52:20

标签: python pandas-groupby

我对使用Python很陌生,并且一直在使用Google搜索,但是似乎没有什么适合我的问题。

我有一个类似以下的数据集:

  groupID   sentenceID           strings
   A        0                    'abc'
   A        0                    'def'
   A        1                    'ghi'
   B        0                    'abc'
   B        1                    'def'
   B        2                    'ghi'

我希望输出看起来像这样:

  groupID   sentenceID           strings
   A        0                    'abc. def'
   A        1                    'ghi'
   B        0                    'abc'
   B        1                    'def'
   B        2                    'ghi'

用简单的英语写出来,我想要完成的工作如下:

对于组ID中的唯一组:
如果句子ID重复,则连接字符串
如果句子ID不重复,则打印字符串

我敢肯定,用熊猫做起来很容易,但是我很难做到正确。有人可以帮忙吗?预先谢谢你。

2 个答案:

答案 0 :(得分:1)

您可以使用groupby和自定义聚合功能来实现

df.groupby(['groupID','sentenceID']).\
   aggregate({'strings': (lambda x: '. '.join(x))}).\
   reset_index()

答案 1 :(得分:0)

使用groupby()apply()的另一种方式

df.groupby(['groupID','sentenceID'])['strings'].apply(lambda x: ', '.join(x)).reset_index()