pandas Python数据框架获取子字符串

6vl6ewon  于 2022-12-16  发布在  Python
关注(0)|答案(1)|浏览(144)

我有一些 Dataframe 的id列像
A12-B-56型飞机
电子1234 B115
它总是一些字母和几个数字,然后是-B-或B,我想保留'-B-'和'B'之前的子字符串。我想到的一个方法是使用for循环和re.split('(\d+)',some_text)。有没有更快的方法来做到这一点?

e5nszbig

e5nszbig1#

使用lookaheadAssert从start开始获取后跟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')

相关问题