使用pandas或python附加唯一的混合字符串

时间:2017-04-20 14:18:20

标签: python python-2.7 pandas counter

我有一个表或df(如果pandas有更好的方法),其中一个列有多个混合字符和字符串,我需要计算它们并附加一个唯一的混合字符串,这将是最好的方法一个python循环或pandas有一些语法来做到这一点?示例数据

col0     col1 col2
ENSG0001 E001 ENSG001:E001
ENSG0001 E002 ENSG001:E002
.
.
ENSG001  E028 ENSG001:E028
ENSG002  E001 ENSG002:E001
.
ENSG002  E012 ENSG002:E012

编辑: 需要计算col0中的元素而不是数字我需要E001作为计数器并在col2中连接col0和col1

1 个答案:

答案 0 :(得分:2)

cumcount + astype创建的专栏Series添加到string + zfill

df['col3'] = df['col0'] + ':E' + 
             df.groupby('col0').cumcount().add(1).astype(str).str.zfill(3)
print (df)
       col0  col1          col2           col3
0  ENSG0001  E001  ENSG001:E001  ENSG0001:E001
1  ENSG0001  E002  ENSG001:E002  ENSG0001:E002
2   ENSG001  E028  ENSG001:E028   ENSG001:E001
3   ENSG002  E001  ENSG002:E001   ENSG002:E001
4   ENSG002  E012  ENSG002:E012   ENSG002:E002