2017-06-19 4 views
1

Ich habe Spalten mit dieser Werte Name:Parsing Spaltenwerte in Pandas

NY0528_3 
NY5366_2 
4536 
NY1244_5 
5363 
PH1734_3 

gewünschte Ausgabe:

0528 
5366 
6363 
1244 
5363 
1734 

Was immer ich versucht habe, kann ich nicht eine universelle Lösung, aber ich brauche ich, weil ich 200.000 Zeilen habe. Dank

+0

Warum '6363' in der dritten Reihe? Sollte es nicht "4536" sein? –

+0

@CarlesMitjans Ja, mein Fehler beim Kopieren – jovicbg

Antwort

2

können Sie verwenden extract:

df.Name.str.extract('(\d+)') 

Ausgang:

0 0528 
1 5366 
2 4536 
3 1244 
4 5363 
5 1734 
Name: Name, dtype: object 
+0

Dieser gibt mir einen Fehler: "['0' '0' '0001' ..., '44357' '44356' '44357' 'nicht im Index". Weißt du, was das sein könnte? – jovicbg

+0

Wie ist die Struktur Ihres Datenrahmens? –

+0

Pandas Datenrahmen mit 20 + Spalten und ein paar tausend Zeilen. Diese Spalte heißt "Name ln". – jovicbg

1

Versuch mit regulären Ausdrücken:

import re 

def clean(teststring): 
    return re.findall(r"[0-9]{4,4}", teststring) 

, wenn Ihre Daten in df.col Lauf ist:

df.col.apply(clean) 
Verwandte Themen