我有一个大数据框,其中包含一个名为“comment”的列
在注释部分,我需要抽出3个值并放入单独的列中,即(占空比、气体和压力)
“占空比数据采集开始:0,气体:真空压力:0.000028 Torr”
目前我使用.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)
我发现这个方法相当“老套”,因为如果注释部分的结构发生变化,我的代码将毫无用处…有谁能给我介绍一种更有效/更健壮的方法来做这件事吗??非常感谢!
最佳答案
与regex一起使用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