从dataframe中的列中提取特定文本

6ioyuze2  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(435)

我有下面的Dataframe,我试图提取一个字符串,它的后面跟数字。
说明AB12345679 132465测试ABC12346548测试1231321 4645
我试过:

data['extract'] = 'ABC'+data['Description'].str.split('ABC').str[1]

但是它给了我在后面有更多文本的例子之后的结果,比如:
说明AB12345679 132465123465481231321 4645
我需要列只包含以下数据:
说明ABC12345679ABC12346548ABC1231321
有什么帮助吗?

kokeuurv

kokeuurv1#

我不是这方面的Maven,但在我的脑子里,你可以更进一步 split(' ') 除去剩下的。

df['extract'] = 'ABC' + df['Description'].str.split('ABC').str[1].str.split(' ').str[0]

输出:

Description      extract
0    ABC12345679 132465  ABC12345679
1      Test ABC12346548  ABC12346548
2  Test ABC1231321 4645   ABC1231321
bttbmeg0

bttbmeg02#

我们可以使用正则表达式来提取字符串的必要部分。
在这里,我们正在检查至少一个[a-c]和0个或更多[0-9]

data['extract'] = data.Description.str.extract(r'([A-C]+[0-9]*)')

或(根据需要)

data['extract'] = data.Description.str.extract(r'([A-C]+[0-9]+)')

输出

Description             extract
0   ABC12345679 132465      ABC12345679
1   Test ABC12346548        ABC12346548
2   Test ABC1231321 4645    ABC1231321

相关问题