我有一个表或df(如果pandas有更好的方法),其中包含多个混合字符和字符串的列之一,我需要对它们进行计数并向其添加唯一的混合字符串,这是执行python循环的最佳方法或熊猫有一些语法可以做到吗?示例数据
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
最佳答案
将Series
+ cumcount
创建的astype
列添加到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
关于python - 使用pandas或python附加唯一的混合字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43522144/