我有一些 Dataframe 的id列像A12-B-56型飞机电子1234 B115它总是一些字母和几个数字,然后是-B-或B,我想保留'-B-'和'B'之前的子字符串。我想到的一个方法是使用for循环和re.split('(\d+)',some_text)。有没有更快的方法来做到这一点?
e5nszbig1#
使用lookaheadAssert从start开始获取后跟B的所有字母数字。在替换-之前执行此操作是明智的。代码如下:
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')
1条答案
按热度按时间e5nszbig1#
使用lookaheadAssert从start开始获取后跟
B
的所有字母数字。在替换-
之前执行此操作是明智的。代码如下:正如@mozway建议的那样,让它成为一行简短的代码