读取查看文件
df = pd.read_csv("lagou-clean.csv") #清洗后的数据
df.head(3)
df=df.drop(['Unnamed: 0'],axis=1)
df.head(3)
对薪资这一个特征做一个简单的分析
新增列 平均薪资,放在薪资的后面
平均薪资为最高薪资和最低薪资的平均值, 比如10k-20k, 平均薪资是 15000
df['薪资']=df['薪资'].str.lower()
df['最低薪资']=df['薪资'].str.replace('k','000').str.split('-').str.get(0).astype(np.int32)
df['最高薪资']=df['薪资'].str.replace('k','000').str.split('-').str.get(1).astype(np.int32)
df['平均薪资']=(df['最低薪资']+df['最高薪资'])/2
df['平均薪资']=df['平均薪资'].astype(np.int32)
df.drop('薪资',axis=1,inplace=True)
df.head(3)
薪资情况统计描述性信息
df.describe()
按照城市进行分组, 查看平均薪资的平均值和标准差
df[['城市','平均薪资']].groupby('城市').agg([np.mean,np.std])
将上表按照平均值进行降序, 并画出, 随着城市变化, 平均薪资的条形图
df1=df[['城市','平均薪资']].groupby('城市').mean().sort_values(by='平均薪资',ascending=False)
df1.plot(kind='bar')
封装成函数
def f(col):
gp =df.groupby(col) #列名
a = gp['平均薪资'].agg('mean').sort_values(ascending=False) #降序
if len(a)<=10:
b = a
else:
b=a[:10] #只看平均薪资前10的
plt.figure(figsize=(6, 4), dpi=100)
plt.bar(b.index, b, color='c')
plt.xticks(rotation=30)
plt.title('各{}平均薪资柱状图'.format(col))
f('城市')
查看 学历要求 与 平均薪资 的关系
f('学历')
公司行业 与 平均薪资 之间的关系
f('行业')
融资阶段 与 平均薪资 之间的关系
f('融资')
公司规模 与 平均薪资 之间的关系
f('规模')
## 经验要求 与 平均薪资 之间的关系
f('经验')
行业情况
df['行业']
df[df.行业.str.contains('移动互联网')].shape
# 统计金融公司数量
df[df.行业.str.contains('金融')].shape
# 统计文娱公司数量
df[df.行业.str.contains('文娱')].shape
#数据分析岗位不同的行业情况,有哪些行业
set(df.行业.str.replace('[ 丨、]',',',regex=True).str.cat(sep=',').split(','))
岗位技能
L=df['岗位技能'].str.cat(sep='').split(' ')
type(L)
pd.Series(L).value_counts()[:20]
地理图
查看全国工作数量分布
df['城市'].value_counts().plot(kind='bar')
data=df['城市'].value_counts().reset_index().values.tolist()
from pyecharts import options as opts
from pyecharts.charts import Geo
c = (
Geo()
.add_schema(maptype="china")
.add("geo", data)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="工作数量分布")
)
.render("工作数量分布.html")
)
查看北京工作数量分布
df[df['城市']=='北京']['公司地点'].value_counts()








暂无数据