首页 » 技术分享 » python实现岗位薪资分析

python实现岗位薪资分析

 

分析方法和思路参考秦璐《七周成为数据分析师》

import pandas as pd
import numpy as np
import os
# 更改文件路劲
os.chdir('D:\sun\作业')
#设置最大显示列数
pd.set_option('display.max_columns', 20)
#设置最大显示行数
pd.set_option('display.max_rows', 100)
# 读取数据
df = pd.read_csv('dataAnalyst_sql.csv', encoding='gbk')#默认将第一行作为表头
df.head(10)

在这里插入图片描述

df.groupby("city").count()

在这里插入图片描述
删除

df.drop(labels = ['positionId', 'companyId'],axis = 1,inplace=True)

查看重复数据

np.sum(df.duplicated())

在这里插入图片描述
计数

df.city.value_counts()

在这里插入图片描述
平均工资描述

df.avgsalary.describe()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

df.avgsalary.hist()
plt.show()

在这里插入图片描述
调整大小

df.avgsalary.hist(bins=15,histtype='barstacked')
plt.show()

在这里插入图片描述
箱线图

df.boxplot(column = "avgsalary",by = "city",figsize = (9,7))
plt.show()

在这里插入图片描述
显示中文

from matplotlib.font_manager import FontProperties
font_zh = FontProperties(fname = "C:/Windows/Fonts/simsun.ttc")
ax = df.boxplot(column = "avgsalary",by = "city",figsize = (9,7))
for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
plt.show()

在这里插入图片描述

ax = df.boxplot(column = "avgsalary",by = "education",figsize = (9,7))
for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
plt.show()

在这里插入图片描述

ax = df.boxplot(column = "avgsalary",by = "workYear",figsize = (9,7))
for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
plt.show()

在这里插入图片描述

df_sh_bj = df[df["city"].isin(["上海","北京"])]
ax = df_sh_bj.boxplot(column = "avgsalary",by = ["education","city"],figsize = (14,6))
for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
plt.show()

在这里插入图片描述

df.groupby(["city","education"]).mean().unstack()

在这里插入图片描述

ax = df.groupby("city").mean().plot.bar()

for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
plt.show()

在这里插入图片描述

ax = df.groupby(["city","education"]).mean().unstack().plot.bar(figsize = (14,5))

for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)
ax.legend(prop = font_zh)
plt.show()

在这里插入图片描述

bins = [0,3,5,10,15,20,30,50,100]
level = ["0-3","3-5","5-10","10-15","15-20","20-30","30-50","50+"]
df["level"] = pd.cut(df["avgsalary"],bins = bins,labels = level) 
df[["avgsalary","level"]]

在这里插入图片描述

df_level = df.groupby(["city","level"]).avgsalary.count().unstack()
df_level_prop = df_level.apply(lambda x: x/x.sum(),axis = 1)
ax = df_level_prop.plot.bar(stacked = True,figsize = (14,6))
for label in ax.get_xticklabels():
    label.set_fontproperties(font_zh)

plt.show()

在这里插入图片描述

转载自原文链接, 如需删除请联系管理员。

原文链接:python实现岗位薪资分析,转载请注明来源!

0