用括号中的值替换pandas列值,前面带逗号

问题描述 投票:-1回答:2

我有一个数据框,其中一列包含名称,其中一部分在括号中,如下所示:

Names
Apple (juicy)
Banana (crunchy)
Grape (sour)

我想将其更改为以下格式:

Names
Apple, juicy
Banana, crunchy
Grape, sour

如何使用pandas和regex实现这一目标?我试过这个:

df['Names'] = df1['Names'].str.replace(r"\s+\(.*\)",", " + r"\(.*\)")

但问题是在最后一位(r“(。*)”),我不知道如何成功转移括号内的任何内容。有了上面的代码,我得到了这个:

Names
Apple, \(.*\) 
Banana, \(.*\) 
Grape, \(.*\) 
python regex python-3.x pandas
2个回答
1
投票

使用捕获组并通过反向引用引用替换部件中捕获的字符。

df['Names'] = df1['Names'].str.replace(r"\s+\((.*)\)", r", \1")

1
投票

你必须使用regex吗?

你可以这样做

df['Names'] = df.Names.apply(lambda x: x.replace('(','').replace(')',''))

这将删除任何字符串中的任何括号。

© www.soinside.com 2019 - 2024. All rights reserved.