Pandas - 获取熊猫数据框列括号内的值

Squ*_*627 2 python regex parentheses dataframe pandas

df有 2 列:

Name    Attr
a(bc)
b(aca)
(cba)
Run Code Online (Sandbox Code Playgroud)

我希望该列Attr具有列括号内的值Name

Name    Attr
a(bc)   bc
b(aca)  aca
(cba)   cba
Run Code Online (Sandbox Code Playgroud)

我试过:

df['Attr'] = re.findall('\(.*?\)',df['Name'].astype('str'))
Run Code Online (Sandbox Code Playgroud)

TypeError: expected string or buffer

真的很感谢任何帮助

jez*_*ael 6

使用str.extract

df['Attr'] = df['Name'].str.extract(r"\(([A-Za-z]+)\)", expand=False)
print (df)
     Name Attr
0   a(bc)   bc
1  b(aca)  aca
2   (cba)  cba
Run Code Online (Sandbox Code Playgroud)

或添加()到您的regex

df['Attr'] = df['Name'].str.extract(r"\((.*?)\)", expand=False)
print (df)
     Name Attr
0   a(bc)   bc
1  b(aca)  aca
2   (cba)  cba
Run Code Online (Sandbox Code Playgroud)