我有一个类似于下面的数据框:
Name Volume Value
May21 23 21321
James 12 12311
Adi22 11 4435
Hello 34 32454
Girl90 56 654654
我希望输出格式为:
Name Volume Value
May 23 21321
James 12 12311
Adi 11 4435
Hello 34 32454
Girl 56 654654
要从“名称”列中删除所有数字。
我最接近的是在单元格级别使用以下代码执行此操作:
result = ''.join([i for i in df['Name'][1] if not i.isdigit()])
任何关于如何在系列/数据框架级别以更好的方式执行此操作的想法。
可以结合正则表达式将str.replace应用于
Name
列:输出:
在正则表达式中,
\d
表示“任意数字”,而+
表示“一个或多个”。因此,
str.replace('\d+', '')
的意思是:“将字符串中所有出现的数字替换为空”。你可以这样做:
要播放和浏览,请查看此处的联机正则表达式演示:https://regex101.com/r/Y6gJny/2
与模式匹配的任何内容(即1个或多个数字)都将被空字符串替换。
尽管这个问题听起来更一般,但示例输入只包含尾随数字。在这种情况下,您不必使用正则表达式,因为^{} (也可以使用via the ^{} accessor of ^{} objects )可以做到这一点:
类似地,可以使用^{} 从开始处删除任何数字,或者使用^{} 从每个字符串的开始和结束处删除任何数字。
相关问题 更多 >
编程相关推荐