gpt4 book ai didi

python - 使用正则表达式在数据框中的括号或数字之前提取前导子字符串

转载 作者:行者123 更新时间:2023-12-02 19:10:24 25 4
gpt4 key购买 nike

我正在寻找一种解决方案来提取没有其他名称或数字的名称。

我的目标是将不在括号中、没有空格和数字的子字符串提取到新列中。

例如:

String                            New string
Bolivia (Plurinational State of) Bolivia
United States of America20 United States of America

数据如下所示:

**Country**                               **Energy Supply** 
Antigua and Barbuda 8000000
Bolivia (Plurinational State of) 50000
Iran (Islamic Republic of) 20000
Sint Maarten (Dutch part) 58000
United States of America20 65000
China, Macao Special AdministrativeRegion4 52000
.....more cases.... ....more cases....

我的代码是这样的:

df['newcontry']=df['Country'].str.extract(r'(\w*\s)')

并返回如下内容:

**Country**                               **Energy Supply**   newcontry
Antigua and Barbuda 8000000 Antigua
Bolivia (Plurinational State of) 50000 Bolivia
Iran (Islamic Republic of) 20000 Iran
Sint Maarten (Dutch part) 58000 Sint
United States of America20 65000 United
China, Macao Special AdministrativeRegion4 52000 China

我可以更改什么来解决此错误?

最佳答案

假设您只需要字符串的前导 block ,您可以在 \d\( 之间使用交替组:r"^(.+ ?) ?(?:\d|\(|$)" 和一个惰性的 (.+?) 来提取您感兴趣的 block 。

>>> df = pd.DataFrame({"Country": ["Bolivia (Plurinational State of)", "United States of America20", "Antigua and Barbuda"]})
>>> df
Country
0 Bolivia (Plurinational State of)
1 United States of America20
2 Antigua and Barbuda
>>> df["Country"].str.extract(r"^(.+?) ?(?:\d|\(|$)")
0
0 Bolivia
1 United States of America
2 Antigua and Barbuda

关于python - 使用正则表达式在数据框中的括号或数字之前提取前导子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64381309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com