簡體   English   中英

使用python在CSV文件列中的破折號[-]的第一次出現和最后一次出現來分割文本

[英]split the text by first occurrence and last occurrence of dash [-] in column of csv file using python

example.csv

row 
india - manager- intel
india -sales-manager-amazon
banglore -ccm- head - county- jp morgan

我使用的代碼

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

預期產量

location     position             company   
india        manager               intel  
india        sales-manager         amazon  
banglore     ccm- head - county    jp morgan

數據

英國西薩塞克斯郡伯吉斯山-全球消費者技術高級副總裁兼首席信息官-英國倫敦美國運通-技術副總裁-工作流程與運營與創始人-英國霍加斯環球阿伯丁-高級特別核心分析顧問/技術專家-英國倫敦COREX集團-英國倫敦ED,股票衍生技術-英國倫敦摩根士丹利-集團技術首席商務官-英國薩里BP Staines-策略與建築IS小組負責人-英國,英國西薩塞克斯郡中央-技術副總裁-美國運通

您可以通過第一次出現分隔符split rsplitsplit一起使用:

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

使用單個pandas.Series.str.split()動作:

tmp_df = df.pop('row').str.split('-')
df['location'], df['position'], df['company'] = tmp_df.str[0], tmp_df.str[1:-1].str.join(sep='-'), tmp_df.str[-1]

print(df)

輸出:

    location            position     company
0     india              manager       intel
1     india        sales-manager      amazon
2  banglore   ccm- head - county   jp morgan

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM