2016-07-06 11 views
5

mam dużą dataframe zawierający kolumna „Komentarz”Jak wybrać wartości pomiędzy strunami i umieścić w kolumnie dataframe przy użyciu regex w python

w sekcji komentarzy muszę wyciągnąć 3 wartości i umieścić w oddzielne kolumny tj (cykl pracy, gazu i ciśnienia)

"START gromadzenie danych dla cyklu Duty: , gaz: Vacuum ciśnienie: 0,000028 Torr"

Current ly używam .split i .tolist do analizowania ciąg ->

#split string and sort into columns 
df1 = pd.DataFrame(eventsDf.comment.str.split().tolist(),columns="0 0 0 0 0 0 dutyCycle 0 Gas 0 Pressure 0 ".split()) 

#join dataFrames 
eventsDf = pd.concat([eventsDf, df1], axis=1) 

#drop columns not needed 
eventsDf.drop(['comment','0',],axis=1,inplace=True) 

znalazłem to raczej metoda „hacky” tym, że w przypadku, gdy struktura sekcji komentarzy zmienia mój kod byłby bezużyteczny ... Czy ktoś może pokazać mi bardziej skuteczny/solidny sposób, aby to zrobić? Dziękuję bardzo!

Odpowiedz

2

użyj str.extract z wyrażeniem regularnym.

regex = r'Duty Cycle: (?P<Duty_Cycle>\d+), Gas: (?P<Gas>\w+) Pressure: (?P<Pressure>\S+) Torr' 
df1 = eventsDf.comment.str.extract(regex, expand=True) 
df1 

enter image description here

+0

Dzięki! to działało idealnie! –