【问题标题】:How to combine string from one column to another column at same index in pandas DataFrame?如何在 pandas DataFrame 中的同一索引处将字符串从一列组合到另一列?
【发布时间】:2021-09-15 04:35:47
【问题描述】:

我在 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 

我怎样才能做到这一点?

【问题讨论】:

  • 您介意将源数据共享为 dict:df.to_dict('records')
  • @sammywemmy 是的,我最初认为这是一个简单的串联,我提供了一个答案

标签: python pandas dataframe nlp


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-10-26
    • 2018-05-03
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多