首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Forloop + regex工作在dataframe列中查找和替换数字,而不是括号。

Forloop + regex工作在dataframe列中查找和替换数字,而不是括号。
EN

Stack Overflow用户
提问于 2019-05-03 11:24:44
回答 1查看 30关注 0票数 0

我在python中有一个数据框架'energy‘,列'Country’有一个国家列表。我试图消除数字,例如,瑞士的Switzerland17和括号,例如,玻利维亚。去玻利维亚。

我为数值情况(如Switzerland17 )工作过的代码,而不是括号中的代码:

代码语言:javascript
运行
复制
for cty in energy['Country']:
    try:
        y = re.findall('[0-9]',cty)[0]
        energy['Country'] = energy['Country'].str.replace(cty,cty[:cty.find(str(y))])
    except:
        continue

上面的工作原理,但是下面没有:

代码语言:javascript
运行
复制
for c in energy['Country']:
    try:
        z = re.search('[(]',c)[0]
        energy['Country'] = energy['Country'].str.replace(c,c[:c.find(str(z))])
    except:
        continue

我还看到单独的打印(c,c:c.find(str(Z)可以工作,但在for-循环中不能工作。我发现和更换支架的地方出了什么问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 11:32:53

使用str.replacestr.strip

Ex:

代码语言:javascript
运行
复制
import pandas as pd

df = pd.DataFrame({'Country': ["Switzerland17", "Bolivia (KK)", "China"]})
df["Country"] = df["Country"].str.strip("0123456789").str.replace(r"(\(.*?\))", "").str.strip()
print(df)

输出:

代码语言:javascript
运行
复制
       Country
0  Switzerland
1      Bolivia
2        China
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55968868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档