2016-07-06 3 views
5

で正規表現を使用してデータフレームの列内の文字列と場所の間で値を選択するために、どのように私は3つの値を引き出し、に配置する必要があるコメントセクション内は私が題したコラムを含む大規模なデータフレームを持っているのpython

「コメント」別々の列すなわち、(デューティ・サイクル、ガス、および圧力)

"デューティ・サイクルのためのデータ収集START:、ガス:真空圧力:0.000028トール"

現在LY私は文字列を解析するために.splitと.tolistを使用しています - >

#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) 

私はコメントセクションの構造は、私のコードは役に立たないだろう変更する場合には、その中に、この方法ではなく「ハック」が見つかり...誰も私にこれを行うことについて行くより効果的/堅牢な方法を示すことができますか?どうもありがとうございます!

答えて

2

str.extractを正規表現で使用します。

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

ありがとう!それは完璧に働いた! –

関連する問題