我的第一个问题...我有一个列'Description'
的Pandas数据框。该列有一个引用和一个名称,我想分为两列。我在单独的df中有'Names'
:
# Description # Names
--------------------------------------- ---------------
0 A long walk by Miss D'Bus 0 Teresa Green
1 A day in the country by Teresa Green 1 Tim Burr
2 Falling Trees by Tim Burr 2 Miss D'Bus
3 Evergreens by Teresa Green
4 Late for Dinner by Miss D'Bus
我已经通过使用带有所有名称的正则表达式字符串来成功搜索描述以确定其名称是否匹配:
regex = '$|'.join(map(re.escape, df['Names'])) + '$'
df['Reference'] = df['Description'].str.split(regex, expand=True)
获取
# Description Reference
-----------------------------------------------------------------------
0 A long walk by Miss D'Bus A long walk by
1 A day in the country by Teresa Green A day in the country by
2 Falling Trees by Tim Burr Falling Trees by
3 Evergreens by Teresa Green Evergreens by
4 Late for Dinner by Miss D'Bus Late for Dinner by
但是我希望将相应的(=删除的定界符)名称作为附加列。
它尝试添加*?到this等正则表达式
我尝试通过使用“参考”列拆分“描述”列
df['Name'] = df['Description'].str.split(df['Reference'])
我尝试通过使用'Reference'字符串的长度来对'Description'列进行切片
# like: df['Name'] = df['Description'].str[-10:] df['Name'] = df['Description'].str[-(df['Reference'].str.len()):]
但是我得到一个恒定的切片长度。
我的第一个问题...我有一个带有“说明”列的Pandas数据框。该列有一个引用和一个名称,我想分为两列。我在单独的df中有“名称”:#...
如果所有字符串都遵循相同的模式,最好将字符串的一部分取到最后的by
like so: