小编典典

如何从熊猫数据框中的字符串项中删除数字

python

我有一个类似于以下内容的数据框:

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

任何想法如何在 系列 / 数据框 级别上以更好的方式 实现


阅读 208

收藏
2020-12-20

共1个答案

小编典典

您可以结合使用正则表达式将str.replace应用于Name列:

import pandas as pd

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

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

print(df)

输出:

    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+', '')含义是:“将字符串中所有出现的数字全部替换为空”。

2020-12-20