我有一些数据帧,其 id 列类似于
A12-B-56
E1234B115
它总是一些字母,然后是几个数字,然后是 -B- 或 B,我想在“-B-”和“B”之前保留子字符串。我想出的一种方法是使用 for 循环和 re.split('(\d+)', some_text)。有没有更快的方法来做到这一点?
最佳答案
使用前瞻断言来获取从头开始的所有字母数字,后跟 B
。在替换 -
之前执行此操作是明智的做法。代码如下:
df=pd.DataFrame({'column':['A12-B-56','A123B567']})
df= df.assign(column=(df['column'].str.replace('\-','', regex=True).str.extract('(^\w+(?=B))')))
按照 @mozway 的建议,使其成为简短而简洁的一行
df['column'].str.extract('(^\w+)-?B')
关于Python Dataframe 获取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74793365/