我有一个数据框,其中一列包含名称,部分列在括号中,如下所示:
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, \(.*\)
答案 0 :(得分:1)
使用捕获组并通过反向引用在替换部件中引用捕获的字符。
df['Names'] = df1['Names'].str.replace(r"\s+\((.*)\)", r", \1")
答案 1 :(得分:1)
您是否必须使用regex
?
你可以这样做
df['Names'] = df.Names.apply(lambda x: x.replace('(','').replace(')',''))
这将删除任何字符串中的任何括号。