我正在尝试在kaggle上预处理数据集:https://www.kaggle.com/sinaasappel/a-heat-map-divides-patients-into-3-groups 。然而,在表 1 中,列名称如下:
'C8-A131.01TCGA', 'AO-A12B.01TCGA', 'BH-A18Q.02TCGA', 'C8-A130.02TCGA',
'C8-A138.03TCGA'...
我想将此表与另一个表中的行合并,如下所示:
TCGA-A2-A0T2 TCGA-A2-A0CM TCGA-BH-A18V TCGA-BH-A18Q TCGA-BH-A0E0 ...
所以我想清理表1中的列名,将其更改为如下内容:
'A131', 'A12B', 'A18Q', 'A130', 'A138'
那么我怎样才能实现这个目标呢?提前致谢!
最佳答案
如果所有列的模式一致,您可以使用正则表达式提取 -
和 .
之间的值。
df = pd.DataFrame(columns = ['C8-A131.01TCGA', 'AO-A12B.01TCGA', 'BH-A18Q.02TCGA', 'C8-A130.02TCGA','C8-A138.03TCGA'])
df.columns = df.columns.str.extract('.*-(.*)\..*')[0]
你得到了
A131 A12B A18Q A130 A138
关于python - 在列名python中的特定位置保留字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63431232/