2017-01-18 1 views
7

ich einen Datenrahmen ähnlich dem unten haben:Pandas Datenrahmen: Wie entfernen Zahlen von Zeichenfolge Begriffe in einem Datenrahmen

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

Ich möchte die Ausgabe im Format angegeben werden:

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

Möchten Sie alle Zahlen aus der Spalte Name entfernen.

Closest ich gekommen bin, ist es bei einer Zelle Ebene mit dem folgenden Code tun:

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

Jede Idee, wie es in einer besseren Art und Weise zu tun, bei der Serie/Datenrahmen Ebene.

Antwort

21

Sie str.replace zum Name Spalte in Kombination mit regulären Ausdrücken anwenden können:

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) 

Ausgang:

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

Im regulären Ausdruck \d für "jede Ziffer" steht und + steht für " ein oder mehr".

Also str.replace('\d+', '') bedeutet: "Ersetzen Sie alle vorkommenden Ziffern in den Strings durch nichts".

+0

Arbeitete wie ein Charme. Danke vielmals! Ich verstehe, dass es eine Amateurfrage war, aber du musst irgendwo anfangen, denke ich. – Mayank

+2

Der YouTube-Kurs [Datenanalyse in Python mit Pandas] (http://www.youtube.com/watch?v=yzIMircGU5I&list=PL5-da3qGB5ICCsgW1MxlZ0Hq8LL5U3u9y) von Kevin Markham ist eine großartige Möglichkeit für Anfänger, die Grundlagen von Pandas zu erlernen. Probieren Sie es aus – Milo

+0

Vielen Dank. Wird sicherlich tun. – Mayank

2

Sie können es wie so:

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

Demo: https://regex101.com/r/Y6gJny/2

Was auch immer durch leere Zeichenkette ersetzt werden wird abgestimmt werden.

Verwandte Themen