Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove numbers from string terms in a pandas dataframe

I have a data frame similar to the one below:

Name    Volume  Value May21   23      21321 James   12      12311 Adi22   11      4435 Hello   34      32454 Girl90  56      654654 

I want the output to be in the format:

Name    Volume  Value May     23      21321 James   12      12311 Adi     11      4435 Hello   34      32454 Girl    56      654654 

Want to remove all the numbers from the Name column.

Closest I have come is doing it at a cell level with the following code:

result = ''.join([i for i in df['Name'][1] if not i.isdigit()]) 

Any idea how to do it in a better way at the series/dataframe level.

like image 820
mank Avatar asked Jan 18 '17 12:01

mank


People also ask

How do I remove numbers from strings in pandas?

In the regular expression \d stands for "any digit" and + stands for "one or more". Thus, str. replace('\d+', '') means: "Replace all occurring digits in the strings with nothing".

How do I remove numbers from a string in Python?

In Python, an inbuilt function sub() is present in the regex module to delete numbers from the Python string. The sub() method replaces all the existences of the given order in the string using a replacement string.


1 Answers

You can apply str.replace to the Name column in combination with regular expressions:

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) 

Output:

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

In the regular expression \d stands for "any digit" and + stands for "one or more".

Thus, str.replace('\d+', '') means: "Replace all occurring digits in the strings with nothing".

like image 198
Milo Avatar answered Sep 21 '22 19:09

Milo