在熊猫中的某些字符之前选择部分字符串名称

时间:2020-08-05 14:50:28

标签: python pandas string slice

我有很多列名称,格式如下:

A-1_45_GG___________________LL
B_2_45_GLKK___________________KK

我正在寻找一种通用的方法来选择长的下划线字符之前的字符串名称。因此,我想要的输出将是重命名为[A-1_45_GG, B_2_45_GL]的列。如何在Python中完成?

2 个答案:

答案 0 :(得分:1)

好吧,如果您的名字中从来没有双下划线,则可以将其用“ __”分隔,然后取第一个索引

string = "A-1_45_GG___________________LL"
string.split("__")[0]

输出:

'A-1_45_GG'

如果要使用列表:

yourlist = ["A-1_45_GG___________________LL", "B_2_45_GLKK___________________KK"]

print(list(map(lambda x: x.split("__")[0], yourlist)))

输出:

['A-1_45_GG', 'B_2_45_GLKK']

答案 1 :(得分:1)

另一种方法是通过正则表达式分割字符串。

import re

lst = ["A-1_45_GG___________________LL", "B_2_45_GLKK___________________KK"]

print([re.split("[_]{2,}", i)[0] for i in lst])

输出:

['A-1_45_GG', 'B_2_45_GLKK']