我对使用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不重复,则打印字符串
我敢肯定,用熊猫做起来很容易,但是我很难做到正确。有人可以帮忙吗?预先谢谢你。
答案 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()