使用python将文本按csv文件列中的第一次出现和最后一次出现的破折号[ - ]拆分

Vip*_*Rao 1 python pandas

example.csv

row 
india - manager- intel
india -sales-manager-amazon
banglore -ccm- head - county- jp morgan
Run Code Online (Sandbox Code Playgroud)

我用过的代码

df = pd.read_csv("example.csv", sep=',')
v = df.pop('row').str.split('-', expand=True)
v.columns = ['location', 'position', 'company']
Run Code Online (Sandbox Code Playgroud)

预期产出

location     position             company   
india        manager               intel  
india        sales-manager         amazon  
banglore     ccm- head - county    jp morgan
Run Code Online (Sandbox Code Playgroud)

数据

Burgess Hill,英国西萨塞克斯郡 - 全球消费者技术高级副总裁兼首席信息官 - 美国伦敦,英国 - 技术副总裁 - 工作流程和运营及创始人 - Hogarth Worldwide英国阿伯丁 - 高级特殊核心分析顾问/技术专家 - COREX集团英国伦敦 - ED,Equity Derivatives Technology,伦敦 - 摩根士丹利伦敦,英国 - 首席商务官,集团技术 - BP Staines,英国萨里 - 战略与建筑集团董事,IS - Centrica West Sussex,英国,英国 - 副总裁 - 技术 - 美国运通

jez*_*ael 5

你可以用splitrsplit通过分离器的第一次出现:

df[['location','position']] = df.pop('row').str.split('-', n=1, expand=True)
df[['position','company']] = df['position'].str.rsplit('-', n=1, expand=True)
print (df)
    location            position     company
0     india              manager       intel
1     india        sales-manager      amazon
2  banglore   ccm- head - county   jp morgan
Run Code Online (Sandbox Code Playgroud)