应用方法后拆分数据框列
Split dataframe column after apply method
我有这个代码来清理 LinkedIn 职位:
def clean_title(position):
if 'back-end' in position.lower():
return 'Backend Developer'
elif 'front-end' in position.lower():
return 'Frontend Developer'
elif 'full-stack' in position.lower():
return 'Fullstack Developer'
elif '-' in position.lower():
return position.split('-')[0].strip()
elif '|' in position:
return position.split('|')[0].strip()
elif '(' in position:
return position.split('(')[0].strip()
elif ':' in position:
return position.split(':')[1].split('-')[0].strip()
elif '-' in position:
if '-' in position.split('-')[0].strip():
return position.split('-')[0].split('-')[0].strip()
else:
return position.split('-')[0].strip()
else:
return position
df['Position'].apply(clean_title).value_counts()
执行前面的代码后,我仍然有一些职位不正确。
应用 clean_title 函数后,我想拆分仍然具有高分 (-) 字符的标题。
https://i.imgur.com/r0tbbN8.png
我该如何继续?
我想你想要的是递归调用clean_title()
。也许像这样的实现:
def clean_title(position):
if 'back-end' in position.lower():
return 'Backend Developer'
if 'front-end' in position.lower():
return 'Frontend Developer'
if 'full-stack' in position.lower():
return 'Fullstack Developer'
if '-' in position:
return clean_title(position.split('-')[0].strip())
if '|' in position:
return clean_title(position.split('|')[0].strip())
if '(' in position:
return clean_title(position.split('(')[0].strip())
if ':' in position:
return clean_title(position.split(':')[0].strip())
return position
我有这个代码来清理 LinkedIn 职位:
def clean_title(position):
if 'back-end' in position.lower():
return 'Backend Developer'
elif 'front-end' in position.lower():
return 'Frontend Developer'
elif 'full-stack' in position.lower():
return 'Fullstack Developer'
elif '-' in position.lower():
return position.split('-')[0].strip()
elif '|' in position:
return position.split('|')[0].strip()
elif '(' in position:
return position.split('(')[0].strip()
elif ':' in position:
return position.split(':')[1].split('-')[0].strip()
elif '-' in position:
if '-' in position.split('-')[0].strip():
return position.split('-')[0].split('-')[0].strip()
else:
return position.split('-')[0].strip()
else:
return position
df['Position'].apply(clean_title).value_counts()
执行前面的代码后,我仍然有一些职位不正确。 应用 clean_title 函数后,我想拆分仍然具有高分 (-) 字符的标题。
https://i.imgur.com/r0tbbN8.png
我该如何继续?
我想你想要的是递归调用clean_title()
。也许像这样的实现:
def clean_title(position):
if 'back-end' in position.lower():
return 'Backend Developer'
if 'front-end' in position.lower():
return 'Frontend Developer'
if 'full-stack' in position.lower():
return 'Fullstack Developer'
if '-' in position:
return clean_title(position.split('-')[0].strip())
if '|' in position:
return clean_title(position.split('|')[0].strip())
if '(' in position:
return clean_title(position.split('(')[0].strip())
if ':' in position:
return clean_title(position.split(':')[0].strip())
return position