早上好,
我已经详尽地搜索了如何在Python/Pandas中最好地做两件事,但还没有找到答案。
我有一个df,例如:
用户 | |
---|---|
Roger Dodger(rogerdodger( | 用户 |
Edwin Cullen(edwincullen( | 用户 |
Hunter Andrews(hunterandrews( | 用户 |
有多种方法可以做到这一点。
一种方法是使用pandas.Series.apply
和如下所示的自定义lambda函数
df['User'] = df['User'].apply(lambda x: x[x.find('(')+1:x.find(')')])
[Out]:
User Role
0 rogerdodger user
1 edwincullen user
2 hunterandrews user
另一种方法可以是使用pandas.Series.str.extract
,如下
df['User'] = df['User'].str.extract(r'((.*?))', expand=False)
[Out]:
User Role
0 rogerdodger user
1 edwincullen user
2 hunterandrews user
备注:
如果需要,还可以将用户名存储在不同的列中,例如列
username
,如下所示df['username'] = df['User'].str.extract(r'((.*?))', expand=False) [Out]: User Role username 0 Roger Dodger (rogerdodger) user rogerdodger 1 Edwin Cullen (edwincullen) user edwincullen 2 Hunter Andrews (hunterandrews) user hunterandrews