我有一个类似于以下内容的数据框:
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列:
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代表“任何数字”,+代表“一个或多个”。
\d
+
因此,其str.replace('\d+', '')含义是:“将字符串中所有出现的数字全部替换为空”。
str.replace('\d+', '')