如何将 pandas DataFrame 中同一索引处的一列字符串组合到另一列?

How to combine string from one column to another column at same index in pandas DataFrame?

我在 nlp 做一个项目。 我的输入是:

index  name  lst 
0      a     c    
0            d    
0            e    
1            f    
1      b     g   

我需要这样的输出:

index  name  lst combine  
0      a     c    a c 
0            d    a d  
0            e    a e  
1            f    b f  
1      b     g    b g 

我怎样才能做到这一点?

您可以使用 groupby+transform('max') 将空单元格替换为每组的字母,因为字母优先于 space。其余的是每列的简单字符串连接:

df['combine'] = df.groupby('index')['name'].transform('max') + ' ' + df['lst']

使用的输入:

df = pd.DataFrame({'index': [0,0,0,1,1],
                   'name': ['a','','','','b'],
                   'lst': list('cdefg'),
                  })

注意。我认为“索引”是这里的一列,如果这是索引,您应该在 groupby

中使用 df.index

输出:

   index name lst combine
0      0    a   c     a c
1      0        d     a d
2      0        e     a e
3      1        f     b f
4      1    b   g     b g