gpt4 book ai didi

python - Pandas 正则表达式,用 char 替换 group

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

问题

给定以下数据框,如何用 _ 替换 X:

data = {'street':['13XX First St', '2XXX First St', '47X Second Ave'], 
'city':['Ashland', 'Springfield', 'Ashland']}
df = pd.DataFrame(data)

需要编辑街道,用下划线 _ 替换每个 X。

请注意,整数的数量发生了变化,X 的数量也发生了变化。此外,街道名称(例如 Xerxes)不应编辑为 _er_es,而应保持不变。仅街道号码部分应更改。

期望的输出

data = {'street':['13__ First St', '2___ First St', '47_ Second Ave'], 
'city':['Ashland', 'Springfield', 'Ashland']}
df = pd.DataFrame(data)

进度

一些潜在的正则表达式构建 block 包括:
1. [0-9]+捕获数字
2. X+捕获X
3. ([0-9]+)(X+) 捕获组

df['street']replace("[0-9]+)(X+)", value=r"\2", regex=True, inplace=False)

我对正则表达式很弱,所以我的方法可能不是最好的。先发制人,感谢您提供任何指导或解决方案!

最佳答案

IIUC,这样做可以:

def repl(m):
return m.group(1) + '_'*len(m.group(2))

df['street'].str.replace("^([0-9]+)(X*)", repl)

输出:

0     13__ First St
1 2___ First St
2 47_ Second Ave
Name: street, dtype: object

关于python - Pandas 正则表达式,用 char 替换 group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668516/

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