series.str.extract()方法与series.apply()的一个场景应用以及sns.countplot()柱状图排序问题

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['font.size']=25
sns.set_style('whitegrid',{'font.sans-serif':['SimHei']})
%matplotlib inline
data=pd.read_csv("lagou.csv",names=['职位名称','薪资','工作城市','城市地区',
       '工作经验要求','公司名称','学历要求','行业领域','融资情况','公司人数'])

数据大概长这样
series.str.extract()方法与series.apply()的一个场景应用以及sns.countplot()柱状图排序问题_第1张图片
想要把工资那一列全部取最低值时采用的方法可以用series.str.extract()的方法也可以采用apply函数。这里apply函数自定义函数中的s是针对series中的每一个值而言的。apply函数会自动的将括号内的函数按照次序依次从上往下的作用在series的每一个值中。如果作用无效,不会报错,并跳过该值。

#取最低薪资用于后续薪资分析
#方法一
# def f(s):
#     r=s.split('-')[0]
#     return r
# data['薪资']=data['薪资'].apply(f)
# data.head()
#方法二
data['薪资']=data['薪资'].str.extract('(\d+k)-\d+k')

另外在使用seaborn.countplot()函数时,柱状图想要做到从高到底排序,最便捷的做法是先对参数x进行x.value_counts()的操作得到其索引在赋值给order参数。如代码所示:

不同城市岗位需求量分析
tem=data['工作城市'].value_counts()
plt.figure(figsize=(9,6))
sns.countplot(x=data['工作城市'],order=tem.index)
plt.xticks(rotation=60)
plt.title('城市数分岗需求量')
plt.xlabel.fontsize=50
plt.ylabel(ylabel="职位数量")
plt.ylim(top=800)
plt.savefig(r'D:\pycharm\pachpng\新建文件夹\citycount.jpg',dpi=300)
plt.show(

结果如下图
series.str.extract()方法与series.apply()的一个场景应用以及sns.countplot()柱状图排序问题_第2张图片

你可能感兴趣的:(笔记)