删除多个字符并加入熊猫列

时间:2018-10-15 15:03:57

标签: python string pandas dataframe join

我正在尝试设置此字符串的格式,但不包括以下字符:

My_name (1)
Your_name (2)

所需的输出:

My_name_ID_1
Your_name_ID_2

这是我数据框的一列。我尝试一次替换,但一次只能替换一个字符,并且我也希望以后加入。

我可以同时加入并替换这两个角色吗?

2 个答案:

答案 0 :(得分:2)

您可以将正则表达式与str.replace一起使用:

s.str.replace(r'(\w+)\s+\(([^\)])\)', r'\1_ID_\2')

0      My_name_ID_1
1    Your_name_ID_2
Name: 0, dtype: object

替代方法是:

s.str.replace(r'\s+\(([^\)])\)', r'_ID_\1')

如果您想不太明确。


正则表达式说明

(                          # matching group 1
  \w+                      # matches any word character
)                          
\s+                        # matches one or more spaces
\(                         # matches the character (
(                          # matching group 2
  [^\)]                    # matches any character that IS NOT )
) 
\)                         # matches the character )

答案 1 :(得分:2)

您还可以使用:

key

但是,@ user3483203的答案更好。 :)