python - 根据单词拆分数据框字符串并将它们存储在数据框列中
问题描述
在我的数据框中,我有一些名称,我想根据一些单词对其进行拆分。
数据框(dff):
id name
1 Midian Almeida(Last)
2 Robert(ASA)(first)
3 Nikole John (middle)
4 Nikole John (first)
5 Raça Negra (last)
我想根据第一个,最后一个,中间来拆分它们
我尝试了以下部分
dff['name'].str.split('(first)|(last)|(middle)', expand=True).add_prefix('name_') 它给出以下输出:
name_0
Midian Almeida
Robert(ASA)
Nikole John
Nikole John
Raça Negra
但我想将拆分的单词放在另一列中。所需的输出是:
id name split option
1 Midian Almeida (Last)
2 Robert(ASA) (first)
3 Nikole John (middle)
4 Nikole John (first)
5 Raça Negra (last)
我怎样才能做到这一点?
解决方案
这包含您需要的内容:Pandas split on regex。以下应该有效:
df.name.str.split(r'(\(Last\)|\(first\)|\(middle\))', expand=True)[[0, 1]]
您需要正则表达式的原因是因为您需要捕获组,在这种情况下,整个匹配字符串周围的括号。如果您想尝试使用正则表达式以获得更好的感觉,您可以使用以下内容:https ://regex101.com/
推荐阅读
- c - 使用 NCurses 向终端发送转义序列
- java - 如何从 java springboot 中的 SOAP 服务创建“https”安全 REST API
- java - 具有比较器的优先级队列返回不同的结果
- r - ggplot:如何将标签添加到 stat_summary_bin(不是 stat_summary)?
- java - 前台服务通知覆盖其他通知
- flutter - Flutter:动画在页面加载时自动启动
- ios - 为什么我没有在 xcode 中使用苹果登录
- python - 无法使用 update_idletasks() 使用 Python Tkinter 可视化排序算法
- laravel - 使用更多选项修改 Oracle DB Enum 列 - Laravel 迁移
- android - 在 MainActivity 启动后调用应用内消息的特定活动,而不是在 SplashActivity 中