如何结合标签将多行合并为一行

2024-10-05 10:40:20 发布

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

我有一个数据框,每行包含一个句子

我想把这些行合并在一起,这样每一行包含每个作者的4个句子

我有这样的数据框:

text:           author
sent1             x
sent2             x   
sent3             x  
..
sent1002          x 
sent1             y
sent2             y
sent3             y
..
sent2598          y
sent1             z
sent2             z
sent3             z
..
sent3698          z

我想把它转换成这样的东西:

text                                 author
setn1,sent2,sent3,sent4                 x
..
sent1000,sent1001,sent1002,sent1003     y
sent1,sent2,sent3,sent4                 z

Tags: 数据text作者句子authorsent2sent1sent3
1条回答
网友
1楼 · 发布于 2024-10-05 10:40:20

使用:

#sample data
print (df)
        text author
0      sent1      x
1      sent2      x
2      sent3      x
3   sent1002      x
4      sent1      x
5      sent2      x
6      sent3      x
7   sent2598      y
8      sent1      y
9      sent2      y
10     sent3      y
11  sent3698      y

因为需要按每4个句子进行聚合,所以使用counter by^{}并使用join传递给另一个groupby

g = df.groupby('author').cumcount() // 4

df1 = (df.groupby(['author', g])['text']
        .agg(','.join)
        .reset_index(level=1, drop=True)
        .reset_index(name='text4'))
print (df1)
  author                       text4
0      x  sent1,sent2,sent3,sent1002
1      x           sent1,sent2,sent3
2      y  sent2598,sent1,sent2,sent3
3      y                    sent3698

相关问题 更多 >

    热门问题