当前位置:  开发笔记 > 编程语言 > 正文

Pandas DataFrame:如何从数据框中的字符串术语中删除数字

如何解决《PandasDataFrame:如何从数据框中的字符串术语中删除数字》经验,为你挑选了2个好方法。

我有一个类似于下面的数据框:

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()])

任何想法如何在系列/数据级别以更好的方式做到这一点.



1> Milo..:

您可以将str.replaceName与正则表达式结合使用到列中:

import pandas as pd

# Create example DataFrame
a = pd.DataFrame.from_dict({'Name': ['May21', 'James', 'Adi22', 'Hello', 'Girl90'], 'Volume': [23, 12, 11, 34, 56], 'Value': [21321, 12311, 4435, 32454, 654654]})

a['Name'] = a['Name'].str.replace('\d+', '')

print(a)

输出:

    Name   Value  Volume
0    May   21321      23
1  James   12311      12
2    Adi    4435      11
3  Hello   32454      34
4   Girl  654654      56

正则表达式\d代表"任何数字",+代表"一个或多个".

因此,str.replace('\d+', '')意思是:"用任何东西替换字符串中所有出现的数字".



2> MYGz..:

您可以这样做:

df.Name = df.Name.str.replace('\d+', '')

要玩和探索,请在此处查看在线正则表达式演示:https : //regex101.com/r/Y6gJny/2

模式匹配的任何内容(\d+即1个或多个数字)都将替换为空字符串。

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有