先上结果:
![](/i/l/?n=23&i=blog/2910984/202212/2910984-20221213222456238-154701774.png)
定义转换函数代码:
def range2min(text):
if '千' in text:
text=text.replace('千','000')#替换中文为数字
if '万' in text:
text=text.replace('万','0000')
return text.split('-')[0]#提取-特定字符之前的数字
def range2max(text):
if '千' in text:
text=text.replace('千','000')
if '万' in text:
text=text.replace('万','0000')
if len(text.split('-'))>1:#判断确实是区间
return text.split('-')[1]#提取-特定字符之后的数字
else:
return text.split('-')[0]
然后应用函数到pandas
data['salary_min']=data['salary'].astype(str).apply(range2min)#对列应用自定义函数
data['salary_max']=data['salary'].astype(str).apply(range2max)
data
原本dataframe:
![](/i/l/?n=23&i=blog/2910984/202212/2910984-20221213222843247-1120819177.png)
得到dataframe: