我有一个表或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
答案 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