学习正则表达式,偶然发现了一点墙。 我有以下数据框:
item_data=pandas.DataFrame({'item':['001','002','003'],
'description':['Fishing,Hooks,12-inch','Fishing,Lines','Fish Eggs']})
对于每个描述,我想在第二个逗号“,”之前提取所有内容。如果没有逗号,则保留原始描述
结果应如下所示:
item_data=pandas.DataFrame({'item':['001','002','003'],
'description':['Fishing,Hooks,12-inch','Fishing,Lines','Fish Eggs'],
'new_description':['Fishing,Hooks','Fishing,Lines', 'Fish Eggs']})
任何指针都会非常感激。
感谢。
答案 0 :(得分:1)
new_description = [",".join(i.split(",")[:2]) for i in item_data['description']]
答案 1 :(得分:1)
使用正则表达式...
re.sub("^([^,]*,[^,]*),.*$", "\\1", x)
意思是
^
字符串开头(
开始捕获[^,]
除了逗号外的任何内容*
零次或多次,
逗号[^,]
除了逗号外的任何内容*
零次或多次)
捕获结束,
另一个逗号.*
任何$
字符串结尾替换第1组(\1
)的内容会删除第二个逗号后出现的内容