gpt4 book ai didi

regex - 替换数据框中的字符串模式

转载 作者:行者123 更新时间:2023-12-03 23:00:48 28 4
gpt4 key购买 nike

假设我有一个数据框:

df = pd.DataFrame({'Country': ['Aruba', 'lorem Andorra ipsum', 'Afgahnistan', 'Bla Yemen, Rep.', 'South Africa'],
'Geographic region': ['Latin America and Caribbean', 'Europe and Central Asia', 'South Asia', 'Middle East and North Africa', 'Sub Saharan Africa']})
如何用字符串 Yemen 替换包含模式 Yemen 的所有单元格?
结果应该是:
df = pd.DataFrame({'Country': ['Aruba', 'lorem Andorra ipsum', 'Afgahnistan', 'Yemen', 'South Africa'],
'Geographic region': ['Latin America and Caribbean', 'Europe and Central Asia', 'South Asia', 'Middle East and North Africa', 'Sub Saharan Africa']})
在下一步中,是否可以使用列表或字典一步将包括安道尔在内的所有单元格替换为安道尔,并将包括也门在内的所有单元格替换为也门?
结果应该是:
df = pd.DataFrame({'Country': ['Aruba', 'Andorra', 'Afgahnistan', 'Yemen', 'South Africa'],
'Geographic region': ['Latin America and Caribbean', 'Europe and Central Asia', 'South Asia', 'Middle East and North Africa', 'Sub Saharan Africa']})
我试过例如
df.replace(regex='lorem Andorra ipsum', value='Andorra ')
这肯定有效,因为它寻找lorem Andorra ipsum。但这是一种过于具体的方法。我进一步尝试了不同的reg表达式
df.replace(regex=r'^Andorra.$', value='Andorra'). But it didn't work.
我提前感谢任何帮助!

最佳答案

首先,将所有模式放在一个数组中
然后循环这个数组,在 df 中循环的另一个循环之上,以搜索模式并替换。
这是一个代码:

patterns = ["Yemen","Andorra"]
for pattern in patterns:
for index, row in df.iterrows():
if row[0].lower().find(pattern.lower()) != -1 :
df['Country'][index] = pattern
break
print(df)
结果:
        Country             Geographic region
0 Aruba Latin America and Caribbean
1 Andorra Europe and Central Asia
2 Afgahnistan South Asia
3 Yemen Middle East and North Africa
4 South Africa Sub Saharan Africa

关于regex - 替换数据框中的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65845728/

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