上一篇pandas入门文档 python中pandas入门操作方法整理
本文配套数据文件(csv文件是以utf8编码的,windows打开可能默认乱码,用pandas打开即可)
链接:https://pan.baidu.com/s/1HRIMAJT3XK75cL2s6BUUAA
提取码:lang
pandas技能综合练习(以boss直聘数据为例)
读取并查看数据
import pandas as pd
import matplotlib.pyplot as plt
# 设置数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
# 如果文件里数据量很大 只是想查看下数据结构的话 可以用下面方法 仅仅读取前些行 会比较块一些
# df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1,nrows = 20)
# 查看数据
print(df.head())
0 11770 岗位 城市 岗位具体名称 公司名称 所在区域 所在街道 \
0 1 11771 python 北京 Python 工程师 爱奇艺 海淀区 中关村
1 2 11772 python 北京 Python 快手 海淀区 上地
2 3 11773 python 北京 初中级Python工程师 智慧星光 NaN NaN
3 4 11774 python 北京 初中级python工程师 软通动力 大兴区 亦庄
4 5 11775 python 北京 Python 爱奇艺 海淀区 中关村
公司类型 公司规模 学历要求 工作经验 融资情况 \
0 互联网 1000-9999人 本科 经验不限 已上市
1 社交网络 10000人以上 本科 1-3年 已上市
2 互联网 500-999人 本科 1-3年 未融资
3 计算机软件 10000人以上 大专 1-3年 已上市
4 互联网 1000-9999人 本科 1-3年 已上市
福利待遇 \
0 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假......
1 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...
2 年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助......
3 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...
4 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补......
薪资(K) 发放月数
0 20-40 12薪
1 25-50 12薪
2 5-10 12薪
3 9-12 12薪
4 20-40 12薪
公司信息统计
统计有多少家大于等于500人的公司在招聘
import re
# 这里为了 匹配 类似于 1000-9999人 这样的数据的第一个完整数字 运用了re 正则表达式的知识点
# re.search(r'\d+',x) 查找字符串x中所有的连续完整数字 返回结果是一个序列
df['公司规模2'] = df['公司规模'].apply(lambda x: re.search(r'\d+',x)[0]).astype(float)
print(df['公司规模2'][df['公司规模2']>=500].count())
company_num_bt500 = df['公司规模2'][df['公司规模2']>=500].count()
print(f'大于500人的招聘企业数量共有{company_num_bt500}家')
(2282 + 5316)
5316
大于500人的招聘企业数量共有5316家
7598
统计一共有多少公司类型
方法一:
unique() 统计非重复数据的个数
company_list = df['公司类型'].unique()
# print(company_list)
print('公司类型数量一共是:',len(company_list))
# print(df['公司类型'].count())
公司类型数量一共是: 80
方法二:
该方法我们后续统计类型信息会用到
company_group = df.groupby('公司类型')
company_group_size = company_group.size()
print(type(company_group.size()),'一共',len(company_group.size()),'种类型')
print(company_group.size())
# 查看某一个类型的具体数目
print(company_group_size['互联网'])
# 获取某一类型公司的具体数据
# print(company_group.get_group('互联网'))
<class 'pandas.core.series.Series'> 一共 80 种类型
公司类型
4S店/后市场 6
O2O 28
专利/商标/知识产权 1
互联网 3183
互联网金融 112
...
银行 35
院校 6
非盈利机构 1
食品/饮料/烟酒 3
餐饮 3
Length: 80, dtype: int64
3183
绘制公司类型信息图
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
company_group = df.groupby('公司类型')
# 一共80个类型,我们从多到少取前18个 (也可以自由取值)
company_group_size = company_group.size().sort_values(ascending=False)[0:18]
x = company_group_size.index
y = company_group_size.values
# 设置画布大小和分辨率
plt.figure(figsize=(18, 5),dpi=80)
"""创建三个子图的 空间 但是我们画第一个 和 第三个子图 中间的作为空白分隔两边的图 避免重叠"""
# 绘制水平方向柱状图
plt.subplot(1, 3, 1)
rects1 = plt.bar(x, y,color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects1:
# print(rect)
plt.text(rect.get_x(), rect.get_height()+20, rect.get_height(),ha='left', va='bottom',rotation = 30)
# 添加轴属性
plt.xlabel("公司类型")
plt.ylabel("数量")
plt.xticks(rotation = 90)
plt.title("公司类型--水平柱状图")
# 绘制垂直方向柱状图
plt.subplot(1, 3, 3)
rects2 = plt.barh(x[::-1], y[::-1], color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5,)
for rect in rects2:
# print(rect)
plt.text(rect.get_width()+20,rect.get_y()+0.3,rect.get_width(),ha='left', va='bottom')
plt.title("公司类型--垂直柱状图")
plt.ylabel("公司类型")
plt.xlabel("数量")
plt.show()
岗位类型统计
绘制岗位类型信息图
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
company_group = df.groupby('岗位具体名称')
print(company_group.size())
company_group_size = company_group.size().sort_values(ascending=False)[0:18]
x = company_group_size.index
y = company_group_size.values
# 设置画布大小和分辨率
plt.figure(figsize=(18, 5),dpi=80)
"""创建三个子图的 空间 但是我们画第一个 和 第三个子图 中间的作为空白分隔两边的图 避免重叠"""
# 绘制水平方向柱状图
plt.subplot(1, 3, 1)
rects1 = plt.bar(x, y,color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects1:
# print(rect)
plt.text(rect.get_x(), rect.get_height()+20, rect.get_height(),ha='left', va='bottom',rotation = 30)
# 添加轴属性
plt.xlabel("岗位类型")
plt.ylabel("数量")
plt.xticks(rotation = 90)
plt.title("岗位类型--水平柱状图")
# 绘制垂直方向柱状图
plt.subplot(1, 3, 3)
rects2 = plt.barh(x, y, color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5,)
for rect in rects2:
# print(rect)
plt.text(rect.get_width()+20,rect.get_y()+0.3,rect.get_width(),ha='left', va='bottom')
plt.title("岗位类型--垂直柱状图")
plt.ylabel("岗位类型")
plt.xlabel("数量")
plt.show()
岗位具体名称
.NET开发 1
201004-Python开发工程师 1
30359-维纳斯-java web后台开发工程师 1
31871-JAVA研发工程师(CSIG全资子公司) 1
35236-金融科技-java研发工程师 1
..
(有住宿)Python中级讲师 1
(有住宿)Python高级讲师 2
(有住宿)java讲师助教 1
(有住宿)python中级讲师 1
(高级)后端研发工程师/Python 1
Length: 2611, dtype: int64
岗位类型代码优化
上面统计图发现 岗位里同时存在 小写的python java 和 大写的 Python Java 其实重复了
import pandas as pd
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
df['岗位具体名称'].str.lower()
0 python 工程师
1 python
2 初中级python工程师
3 初中级python工程师
4 python
...
7593 java高级开发工程师
7594 java
7595 java
7596 java
7597 java项目经理
Name: 岗位具体名称, Length: 7598, dtype: object
整体优化之前代码
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
df['岗位具体名称'] = df['岗位具体名称'].str.lower()
company_group = df.groupby('岗位具体名称')
print(company_group.size())
company_group_size = company_group.size().sort_values(ascending=False)[0:18]
x = company_group_size.index
y = company_group_size.values
# 设置画布大小和分辨率
plt.figure(figsize=(18, 5),dpi=80)
"""创建三个子图的 空间 但是我们画第一个 和 第三个子图 中间的作为空白分隔两边的图 避免重叠"""
# 绘制水平方向柱状图
plt.subplot(1, 3, 1)
rects1 = plt.bar(x, y,color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects1:
# print(rect)
plt.text(rect.get_x(), rect.get_height()+20, rect.get_height(),ha='left', va='bottom',rotation = 30)
# 添加轴属性
plt.xlabel("岗位类型")
plt.ylabel("数量")
plt.xticks(rotation = 90)
plt.title("岗位类型--水平柱状图")
# 绘制垂直方向柱状图
plt.subplot(1, 3, 3)
rects2 = plt.barh(x, y, color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5,)
for rect in rects2:
# print(rect)
plt.text(rect.get_width()+20,rect.get_y()+0.3,rect.get_width(),ha='left', va='bottom')
plt.title("岗位类型--垂直柱状图")
plt.ylabel("岗位类型")
plt.xlabel("数量")
plt.show()
岗位具体名称
.net开发 1
201004-python开发工程师 1
30359-维纳斯-java web后台开发工程师 1
31871-java研发工程师(csig全资子公司) 1
35236-金融科技-java研发工程师 1
..
(双休+五险一金)python开发讲师 1
(有住宿)java讲师助教 2
(有住宿)python中级讲师 2
(有住宿)python高级讲师 2
(高级)后端研发工程师/python 1
Length: 2370, dtype: int64
python java 分开统计
测试代码
import pandas as pd
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
df['岗位具体名称'] = df['岗位具体名称'].str.lower()
company_group = df.groupby('岗位')
print(company_group.size())
print(company_group.get_group('java'))
岗位
java 3956
python 3642
dtype: int64
0 11770 岗位 城市 岗位具体名称 公司名称 所在区域 \
3642 3643 15413 java 北京 java 百度 海淀区
3643 3644 15414 java 北京 java 百度 海淀区
3644 3645 15415 java 北京 java 牛电信息 昌平区
3645 3646 15416 java 北京 java 百度 海淀区
3646 3647 15417 java 北京 java研发工程师 百度 海淀区
... ... ... ... ... ... ... ...
7593 7594 19364 java 重庆 java高级开发工程师 中林广生 九龙坡区
7594 7595 19365 java 重庆 java 创易康软件 NaN
7595 7596 19366 java 重庆 java 非鱼计划 NaN
7596 7597 19367 java 重庆 java 重庆新致金服 渝北区
7597 7598 19368 java 重庆 java项目经理 德帆科技 南岸区
所在街道 公司类型 公司规模 学历要求 工作经验 融资情况 \
3642 西北旺 互联网 10000人以上 本科 1-3年 已上市
3643 西北旺 互联网 10000人以上 本科 1-3年 已上市
3644 回龙观 互联网 500-999人 本科 3-5年 已上市
3645 上地 互联网 10000人以上 本科 1-3年 已上市
3646 西北旺 互联网 10000人以上 本科 3-5年 已上市
... ... ... ... ... ... ...
7593 石桥铺 计算机软件 20-99人 本科 1-3年 未融资
7594 NaN 计算机软件 1000-9999人 本科 1-3年 已上市
7595 NaN 互联网 0-20人 本科 5-10年 未融资
7596 新牌坊 计算机软件 1000-9999人 本科 3-5年 未融资
7597 南坪 计算机软件 100-499人 大专 5-10年 不需要融资
福利待遇 \
3642 老板Nice,住房补贴,员工旅游,交通补助,五险一金,免费班车,股票期权,团队氛围好,零食下...
3643 通讯补贴,团队氛围好,加班补助,老板Nice,零食下午茶,带薪年假,补充医疗保险,年终奖,餐...
3644 带薪年假,零食下午茶,节日福利,五险一金,补充医疗保险,定期体检......
3645 团队氛围好,餐补,节日福利,带薪年假,员工旅游,通讯补贴,老板Nice,加班补助,补充医疗保...
3646 节日福利,通讯补贴,定期体检,住房补贴,股票期权,团队氛围好,免费班车,五险一金,老板Nic...
... ...
7593 年终奖,加班补助,五险一金,定期体检
7594 带薪年假,餐补,股票期权,节日福利,五险一金,通讯补贴,年终奖,定期体检,交通补助......
7595 加班补助,全勤奖,五险一金
7596 加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖......
7597 带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金......
薪资(K) 发放月数
3642 20-30 16薪
3643 15-30 12薪
3644 20-25 13薪
3645 20-40 12薪
3646 20-40 12薪
... ... ...
7593 10-11 12薪
7594 5-9 12薪
7595 10-11 12薪
7596 9-14 13薪
7597 12-18 12薪
[3956 rows x 16 columns]
完整代码
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
df['岗位具体名称'] = df['岗位具体名称'].str.lower()
# 以下为主要更改的代码
job_group = df.groupby('岗位')
print('岗位.size()',job_group.size())
java_group = job_group.get_group('java')
python_group = job_group.get_group('python')
java_group_detail = java_group.groupby('岗位具体名称')
print('java具体岗位类别数量',len(java_group_detail.size()))
java_group_detail = java_group_detail.size().sort_values(ascending=False)[0:18]
x1 = java_group_detail.index
y1 = java_group_detail.values
python_group_detail = python_group.groupby('岗位具体名称')
print('python具体岗位类别数量',len(python_group_detail.size()))
python_group_detail = python_group_detail.size().sort_values(ascending=False)[0:18]
x2 = python_group_detail.index
y2 = python_group_detail.values
# 以上为主要更改的代码
# 设置画布大小和分辨率
plt.figure(figsize=(18, 5),dpi=80)
"""创建三个子图的 空间 但是我们画第一个 和 第三个子图 中间的作为空白分隔两边的图 避免重叠"""
plt.subplot(1, 3, 1)
# 绘制水平方向柱状图
rects1 = plt.barh(x1, y1,color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects1:
# print(rect)
plt.text(rect.get_width()+20,rect.get_y()+0.3,rect.get_width(),ha='left', va='bottom')
# 添加轴属性
plt.xlabel("数量")
plt.ylabel("java岗位类型")
plt.xticks(rotation = 90)
plt.title("java岗位类型--水平柱状图")
# 绘制垂直方向柱状图
plt.subplot(1, 3, 3)
rects2 = plt.barh(x2, y2, color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5,)
for rect in rects2:
# print(rect)
plt.text(rect.get_width()+20,rect.get_y()+0.3,rect.get_width(),ha='left', va='bottom')
plt.title("python岗位类型--垂直柱状图")
plt.ylabel("python岗位类型")
plt.xlabel("数量")
plt.show()
岗位.size() 岗位
java 3956
python 3642
dtype: int64
java具体岗位类别数量 1026
python具体岗位类别数量 1369
作业练习
统计不同城市一共有多少家公司在招聘
数据提取测试代码
import pandas as pd
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
city_groups = df.groupby('城市')
print(city_groups.size())
for i in city_groups.size().index:
# print(i)
# print(i,'在招聘python 和 java的企业一共有',len(city_groups.get_group(i).groupby('公司名称').size().index))
print(i,'在招聘python 和 java的企业一共有',len(city_groups.get_group(i)['公司名称'].unique()))
城市
上海 561
北京 586
厦门 555
天津 527
广州 534
成都 546
杭州 550
武汉 543
深圳 578
苏州 517
西安 560
郑州 484
重庆 515
长沙 542
dtype: int64
上海 在招聘python 和 java的企业一共有 243
北京 在招聘python 和 java的企业一共有 237
厦门 在招聘python 和 java的企业一共有 244
天津 在招聘python 和 java的企业一共有 268
广州 在招聘python 和 java的企业一共有 265
成都 在招聘python 和 java的企业一共有 278
杭州 在招聘python 和 java的企业一共有 181
武汉 在招聘python 和 java的企业一共有 241
深圳 在招聘python 和 java的企业一共有 199
苏州 在招聘python 和 java的企业一共有 272
西安 在招聘python 和 java的企业一共有 173
郑州 在招聘python 和 java的企业一共有 277
重庆 在招聘python 和 java的企业一共有 282
长沙 在招聘python 和 java的企业一共有 262
绘制不同城市招聘公司数量图
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
city_groups = df.groupby('城市')
# print(city_groups.size())
# plt.subplot(1, 2, 1)
plt.figure(figsize=(10, 5),dpi=80)
company_num = {}
for i in city_groups.size().index:
company_num[i] = len(city_groups.get_group(i)['公司名称'].unique())
# 添加轴属性
plt.xlabel("城市名称")
plt.ylabel("数量")
plt.xticks(rotation = 90)
plt.title("不同城市在招 python 和 java 公司数量")
rects3 = plt.bar(company_num.keys(),company_num.values(),color=["green","#4CAF50","red","hotpink","#556B2F"],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects3:
# print(rect)
plt.text(rect.get_x()+0.1, rect.get_height()+2, rect.get_height(),ha='left', va='bottom')
plt.show()
交叉分析
语法 pd.crosstab([维度1,维度2],[指标1,指标2],margins=True,margins_name=“总计”)
margins 设置是否显示总计,margins_name 设置总计的字段名字 默认是all
normalize = “columns” “index” True 可以归一化数据
pd.crosstab([df["城市"],df["岗位"]],df["公司规模"],margins=True)
公司规模 0-20人 100-499人 1000-9999人 10000人以上 20-99人 500-999人 All
城市 岗位
上海 java 0 0 148 117 0 21 286
python 7 66 78 65 32 27 275
北京 java 0 0 114 147 0 29 290
python 1 32 113 88 10 52 296
厦门 java 1 67 109 28 43 43 291
python 32 43 53 31 78 27 264
天津 java 15 46 85 36 55 34 271
python 18 34 70 43 63 28 256
广州 java 3 3 142 106 3 38 295
python 18 42 53 40 58 28 239
成都 java 3 8 111 115 5 37 279
python 14 56 38 50 81 28 267
杭州 java 0 0 84 154 0 37 275
python 21 69 43 71 57 14 275
武汉 java 0 11 116 130 5 31 293
python 6 50 54 66 47 27 250
深圳 java 0 0 103 161 0 26 290
python 7 30 96 110 22 23 288
苏州 java 7 33 91 81 45 27 284
python 27 56 38 27 60 25 233
西安 java 2 9 74 173 2 35 295
python 5 20 35 165 27 13 265
郑州 java 11 56 58 44 38 57 264
python 13 58 28 25 63 33 220
重庆 java 14 57 43 37 81 27 259
python 19 24 49 92 33 39 256
长沙 java 1 47 89 81 32 34 284
python 16 94 42 19 70 17 258
All 261 1011 2157 2302 1010 857 7598
交叉分析绘图
cro = pd.crosstab([df["城市"],df["岗位"]],df["公司规模"])
cro.plot(kind="bar",figsize=(20,8),fontsize=18,stacked=True)
python java 分开统计
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
job_groups = df.groupby('岗位')
# python_groups = job_groups.get_group('python')
# java_groups = job_groups.get_group('java')
num = 0
plt.figure(figsize=(10, 5),dpi=80)
for language in ('python','java'):
num += 1
language_groups = job_groups.get_group(language)
city_groups = language_groups.groupby('城市')
# print(city_groups.size())
plt.subplot(1, 2, num)
company_num = {}
for i in city_groups.size().index:
company_num[i] = len(city_groups.get_group(i)['公司名称'].unique())
# 添加轴属性
plt.xlabel("城市名称")
plt.ylabel("数量")
plt.xticks(rotation = 90)
plt.title(f"不同城市在招 {language} 的公司数量")
rects3 = plt.bar(company_num.keys(),company_num.values(),color=[["green","#4CAF50","#556B2F"],["red","hotpink","#556B2F"]][num%2],alpha=0.5)
# 标记每个柱形的具体数据
for rect in rects3:
# print(rect)
plt.text(rect.get_x()+0.1, rect.get_height()+2, rect.get_height(),ha='left', va='bottom')
plt.show()
单图连续并列显示
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
job_groups = df.groupby('岗位')
num = 0
plt.figure(figsize=(10, 5),dpi=80)
for language in ('python','java'):
language_groups = job_groups.get_group(language)
city_groups = language_groups.groupby('城市')
company_num = {}
for i in city_groups.size().index:
company_num[i] = len(city_groups.get_group(i)['公司名称'].unique())
len_company_num = len(company_num)
x = [i+num*0.3 for i in range(len_company_num)]
# print(x)
rects3 = plt.bar(x,company_num.values(),width = 0.3,
color=["#4CAF50","hotpink"][num%2],
alpha=0.5,label = language)
# 标记每个柱形的具体数据
for rect in rects3:
plt.text(rect.get_x(), rect.get_height()+2, rect.get_height(),ha='left', va='bottom')
num += 1
# 添加轴属性
plt.xlabel("城市名称")
plt.ylabel("数量")
print(x,len(x))
print(list(company_num.keys()),len(list(company_num.keys())))
plt.xticks(x, list(company_num.keys()),rotation = 90)
plt.title(f"不同城市在招 python 和 java 的公司数量")
plt.legend(loc = "upper center",bbox_to_anchor=(1.06, 1) )
plt.show()
[0.3, 1.3, 2.3, 3.3, 4.3, 5.3, 6.3, 7.3, 8.3, 9.3, 10.3, 11.3, 12.3, 13.3] 14
['上海', '北京', '厦门', '天津', '广州', '成都', '杭州', '武汉', '深圳', '苏州', '西安', '郑州', '重庆', '长沙'] 14
在同一个城市既招聘 python 又 招聘 java 的公司
此处我们发现,某一个城市 招python的公司数量 + 招java的公司数量 > 该城市所有招聘公司数量
思考:应该是有的公司既招聘 python 又 招聘 java
那是哪些公司呢,尝试找出来。
思路:对招 python 和 java 的公司进行分组,然后取交集。
这里使用python种集合类型取交集的方式取交集即可。
import matplotlib.pyplot as plt
from matplotlib import font_manager
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
job_groups = df.groupby('岗位')
num = 0
plt.figure(figsize=(10, 5),dpi=80)
# 创建一个列表,将来存两个字典。一个是不同城市招聘python的公司,一个是不同城市招聘java的公司。
# 将来根据 同一个城市 python 和 java 城市公司的集合 取交集
company_list = []
for language in ('python','java'):
language_groups = job_groups.get_group(language)
city_groups = language_groups.groupby('城市')
company_num = {}
for i in city_groups.size().index:
company_num[i] = city_groups.get_group(i)['公司名称']
company_list.append(company_num)
# print(company_list)
target_company = {}
for company in company_list[0]:
target_company[company] = set(company_list[0][company])&set(company_list[1][company])
print(target_company)
print(df[df['公司名称']=="叽里呱啦"])
{'上海': {'诺亚财富', '爱奇艺', '叽里呱啦', '甜橙金融', '乐言科技', '赛可出行', 'IBM', '携程集团', '百度', '汉克时代', '携程旅行网', 'PayPal', '信也科技', '蚂蚁金服'}, '北京': {'领创集团', '天眼查', '奇虎360', '好未来', '小米', '阿里云', '爱奇艺', '千里马招标网', '医渡云', '中国知网', '蚂蚁金服', '高德地图', '金山云', '中科软', '腾讯', '老虎集团', '微博', '国美控股集团', '360集团', '淡蓝网Blued', '快手', '汽车之家', '法本信息', '艾融软件', '美团', '人人车', '去哪儿网', '北京百度网讯有限公司', '阿里巴巴集团', '百度'}, '厦门': {'MetaApp', '北京博睿宏远', '熵基科技', '网宿科技', '美柚', '美亚柏科', '象屿科技', '法本', '安胜', '瑞幸咖啡', '厦门趣店科技有限公司', '建信金科'}, '天津': {'LinkDoc', '搜狐视频', '安华金和', '渣打环球商业服务', '链数科技', '中科曙光', '童程童美儿童教育', '长亮科技', '神州信息', '北京恒华伟业科技...', '北京易华录', '神州商龙', '众思高远', '天睿科技', '浪潮', '捷信', '天地伟业', '太极风控', '莱科德', '道本科技', '微企信息', '华钦软件CLPS', '深思维', '朗新科技', '富士康', '阿里巴巴集团', '华为', '软通动力'}, '广州': {'中电金信', '赞同科技', '中国电信云', '致景科技', '软通动力信息技术集团', '巴图鲁', '联友科技', '华为技术有限公司', '今日头条', 'Casa systems', '亿达信息', '亿磐深圳', '酷狗音乐', '中软国际', '视源股份(CVTE)', '传智教育', '唯品会', '华为', 'Fordeal'}, '成都': {'中国网安', 'ThoughtWorks', '软通动力信息技术集团', '青云', '长扬科技', '泰立智汇', '新希望金科', '软通动力', '博彦科技', '成都路行通'}, '杭州': {'智云健康', '阿里云', '有赞', '浙江大华', '蚂蚁金服', '阿里巴巴集团', '涂鸦智能', '拼便宜', '开心果网络'}, '武汉': {'武汉佰钧成技术', '中电金信', 'ThoughtWorks', '海康威视', '首都在线', '绿盟科技', '小米', '汉王科技', '拓维云创', '华为技术有限公司', '拓保软件', '美的it', '联想', '招商证券', '腾讯', '天融信', '诚迈科技', '和悦科技', '新模式互联网科技', '软通动力信息技术集团', '金山办公软件', '青云', '易久批', '华为', '软通动力', '奇安信集团'}, '深圳': {'顺丰科技', '招商金科', '十方教育', '软通动力信息技术集团', '网宿科技', '华为技术有限公司', '易宝软件', 'CloudBU', '银盛支付', '富泰华工业', '腾讯', '百度', '微品致远', '中软国际'}, '苏州': {'北京外企德科人力...', '山石网科', '同程艺龙', '中软国际', '国泰新点', '苏州瑞翼', '江苏创源智能', '智慧芽', '云学堂', '华为技术有限公司', '小象多多', '北京极智嘉科技股...', '万得', '博世中国 / 集团', '安硕信息技术', '百硕同兴科技(北...', '软通动力信息技术集团', '中移', '黑曜石网络', '华为', '软通动力', '联滔电子', '机数芯微科技'}, '西安': {'武汉佰钧成技术', '甜橙金融', '腾讯云', '软通动力信息技术集团', '华为技术有限公司', '易宝软件', 'CloudBU', '腾讯', '亚信科技', '华为', '柯莱特集团', '润联科技', '润和软件', '中软国际', '软通动力', '博彦科技'}, '郑州': {'中电金信', '达内教育集团', '打造前程', '郑州积云', '中软国际', '佳发教育', 'APUS', '河南双汇投资发展...', '中国电信集成', '世纪国科', '云鸟', '太极云软', '云智慧', '亚信科技', '中科宇图', '编易教育科技', '视博电子', '中原银行', '富士康', 'UU跑腿', '中移在线', '小鱼易连'}, '重庆': {'北京外企德科人力...', '海康威视', '中软国际', '淘客帮', '四川天兆猪业股份...', '量化家', '重庆新致金服', '马上消费金融', '寅冠州', '优税猫', '蚂蚁金服', '觉晓教育', '中关村科金', '鸿翼股份', '腾讯', '亚信科技', '法本', '德勤咨询', '紫光华智', '英业达', '深圳市锐明技术', '网达软件', '阿里巴巴集团', '润和软件', '华为', '广州飞歌', '恒安嘉新', '重庆中冉信息分公司', '大连斯锐信息技术公司'}, '长沙': {'潭州教育', '蜜獾信息', '兴盛优选', '软通动力信息技术集团', '华为技术有限公司', '长沙紫檀数据科技', '腾讯', '童程童美', '华为', '中科云谷', 'CSDN', '象盒', '芒果tv', '马士兵(北京)教...'}}
0 11770 岗位 城市 岗位具体名称 公司名称 \
334 335 12105 python 上海 python 叽里呱啦
532 533 12303 python 上海 python 叽里呱啦
4028 4029 15799 java 上海 后端java研发工程师 叽里呱啦
4195 4196 15966 java 上海 资深 Java 工程师 叽里呱啦
4215 4216 15986 java 上海 资深 Java 工程师 - 基础架构方向 叽里呱啦
所在区域 所在街道 公司类型 公司规模 学历要求 工作经验 融资情况 \
334 浦东新区 陆家嘴 互联网 1000-9999人 本科 3-5年 C轮
532 普陀区 长寿路 互联网 1000-9999人 本科 3-5年 C轮
4028 浦东新区 陆家嘴 互联网 1000-9999人 本科 1-3年 C轮
4195 浦东新区 陆家嘴 互联网 1000-9999人 本科 5-10年 C轮
4215 浦东新区 陆家嘴 互联网 1000-9999人 本科 5-10年 C轮
福利待遇 \
334 五险一金,节日福利,带薪年假,零食下午茶,通讯补贴,定期体检,免费三餐,包吃,补充医疗保险,...
532 包吃,节日福利,免费三餐,零食下午茶,定期体检,员工旅游,补充医疗保险,餐补,年终奖,带薪年...
4028 员工旅游,五险一金,节日福利,通讯补贴,免费三餐,包吃,定期体检,年终奖,零食下午茶,补充医...
4195 节日福利,免费三餐,带薪年假,补充医疗保险,年终奖,通讯补贴,零食下午茶,餐补,包吃,五险一...
4215 补充医疗保险,员工旅游,零食下午茶,通讯补贴,定期体检,年终奖,五险一金,包吃,免费三餐,节...
薪资(K) 发放月数
334 20-40 15薪
532 25-40 15薪
4028 25-50 15薪
4195 30-50 15薪
4215 30-50 15薪
<Figure size 800x400 with 0 Axes>
在多个城市招聘的公司
思路:按公司分组,取到分组后数量大于1的公司
根据 公司名字 循环全局检索分组后数量大于1的公司 得到本次结果
对结果按城市分组,如果分组数量大于1,则是我们要找的公司,记录下公司名和城市名
思路2:按公司和城市分组 先公司 后城市 最后分组结果大于1的就是
import pandas as pd
# 设置数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
job_groups = df.groupby(['公司名称','城市'])
print(job_groups.size()[:20],type(job_groups))
公司名称 城市
21cn 广州 1
成都 1
360集团 北京 3
成都 1
4399游戏 厦门 1
58集团 北京 2
99cms 天津 3
9号云诊 重庆 1
ACJ 天津 1
AKULAKU 深圳 4
APLL 重庆 2
APUS 郑州 4
ATA 上海 1
AfterShip 深圳 1
Amazon 成都 1
Anker 长沙 1
AutoX 无人驾驶 深圳 1
BBD 天津 1
成都 1
BIGO 广州 3
dtype: int64 pandas.core.groupby.generic.DataFrameGroupBy
company_list = [x[0] for x in job_groups.size().index]
# print(company_list)
company_series = pd.Series(company_list)
print(company_series)
0 21cn
1 21cn
2 360集团
3 360集团
4 4399游戏
...
3417 龙湖集团
3418 龙湖集团
3419 龙达财税
3420 龙远鼎晟
3421 龙骐科技
Length: 3422, dtype: object
# 找出重复值 即出现次数大于1的公司
print(company_series.duplicated())
0 False
1 True
2 False
3 True
4 False
...
3417 False
3418 True
3419 False
3420 False
3421 False
Length: 3422, dtype: bool
# 找出了700+个重复值,可以复制其中的任意公司名 去表格里手动检索验证一下
print(company_series[company_series.duplicated()])
print(type(company_series[company_series.duplicated()].values))
print(company_series[company_series.duplicated()].values)
print(list(company_series[company_series.duplicated()].values))
1 21cn
3 360集团
19 BBD
36 CloudBU
37 CloudBU
...
3370 首都在线
3372 马上消费金融
3394 魔门塔科技
3408 黑帕云
3418 龙湖集团
Length: 711, dtype: object
<class 'numpy.ndarray'>
['21cn' '360集团' 'BBD' 'CloudBU' 'CloudBU' 'Each+' 'G7' 'IBM' 'IBM' 'IBM'
'IBM' 'LAZADA' 'OPPO' 'OPPO' 'PACTERA' 'PACTERA' 'PayPal' 'SmartX'
'SmartX' 'SmartX' 'TecomScience' 'Testin 云测' 'ThoughtWorks'
'ThoughtWorks' 'Udesk' 'VIPCODE' 'bilibili' 'tellhowsoft' 'wlaike' '三一重工'
'三七互娱-妙小程' '三维天地' '上海小牛互娱' '上海屹通' '上海数巧' '上海数巧' '上海理想' '上海百胜软件'
'上海菜信网络科技...' '东方瑞通' '东财基金' '东软集团' '东软集团' '中信网科' '中信网科' '中信网科' '中关村科金'
'中关村科金' '中关村科金' '中兴通讯股份有限公司' '中兴通讯股份有限公司' '中启动力' '中国电信云' '中国电信云' '中国电信集成'
'中国电信集成' '中慧云启科技集团' '中慧云启科技集团' '中数通' '中电文思海辉' '中电文思海辉' '中电文思海辉' '中电文思海辉'
'中电金信' '中电金信' '中电金信' '中电金信' '中电金信' '中电金信' '中电金信' '中电金信' '中科创达软件' '中科创达软件'
'中科曙光' '中科软' '中科软' '中科软' '中科软科技' '中科软科技' '中科软科技有限公司' '中科软科技有限公司' '中科迪宏'
'中科迪宏' '中科迪宏' '中科金财' '中科院信息技术' '中移物联网' '中职通教育' '中软华腾' '中软国际' '中软国际'
'中软国际' '中软国际' '中软国际' '中软国际' '中软国际' '中软国际' '中软国际' '中软国际' '中软国际' '久远银海'
'久远银海' '久远银海' '乐学优课' '云从科技' '云智慧' '亚信科技' '亚信科技' '亚信科技' '亚信科技' '亚信科技'
'亚信科技' '亚信科技' '京东世纪贸易有限公司' '京东世纪贸易有限公司' '京东科技集团' '京东集团' '京东集团' '京北方'
'京北方' '京北方' '京北方' '京北方' '京北方' '京北方' '人瑞人才' '人瑞集团' '亿咖通' '亿磐深圳' '亿达信息'
'亿达信息' '亿达信息' '今天国际' '今日头条' '今日头条' '今日头条' '仙豆智能' '众言科技' '优哲科技' '优哲科技'
'优锘科技' '传智教育' '传智教育' '传音控股' '信必优Symbio' '信雅达科技股份' '信雅达科技股份' '傲梦网络科技'
'傲梦网络科技' '傲梦网络科技' '傲梦网络科技' '傲梦网络科技' '傲梦网络科技' '傲梦网络科技' '傲梦网络科技' '傲梦网络科技'
'傲梦网络科技' '光庭' '公瑾科技' '六星教育' '兴业数金' '兴业数金' '兴海物联' '农信互联' '凯捷' '前海恒道智融'
'北京乐博乐博' '北京华宇信息' '北京南天' '北京博睿宏远' '北京外企德科人力...' '北京外企德科人力...'
'北京外企德科人力...' '北京外企德科人力...' '北京字节跳动' '北京字节跳动' '北京宜通' '北京恒华伟业科技...'
'北京掌上先机' '北京极智嘉科技股...' '北京瑞友科技' '北京百度网讯有限公司' '北京百度网讯有限公司' '北京知道创宇'
'北京知道创宇' '北京纬创' '北大软件' '北大软件' '北明软件' '北明软件' '北明软件' '华为' '华为' '华为' '华为'
'华为' '华为' '华为' '华为' '华为' '华为' '华为' '华为' '华为成都研究所' '华为技术有限公司' '华为技术有限公司'
'华为技术有限公司' '华为技术有限公司' '华为技术有限公司' '华为技术有限公司' '华为技术有限公司' '华为技术有限公司'
'华为技术有限公司' '华为技术有限公司' '华为技术有限公司' '华为技术有限公司' '华为技术武研所' '华为终端有限公司' '华清远见'
'华清远见' '华钦软件CLPS' '华钦软件CLPS' '华钦软件CLPS' '南京亚信软件' '南京亚信软件' '博彦科技' '博彦科技'
'博彦科技' '博彦科技' '博彦科技' '博彦科技' '博彦科技' '博彦科技' '博彦科技' '博彦科技' '卫宁健康' '卫宁健康'
'卫宁健康' '厦门科拓股份' '发现报告' '叮咚买菜' '合原瑞成' '同方鼎欣' '同方鼎欣' '同盾科技' '同程艺龙' '同花顺'
'和骏出行' '品众互动' '哈啰出行' '哈啰出行' '唯品会' '嘉为科技' '四川准达' '四方精创' '四维图新' '国双科技'
'国双科技' '国双科技' '国双科技' '国泰新点' '国美控股集团' '埃森哲' '多比网络' '大搜车' '大账房' '大连华信计算机'
'大连华信计算机' '大连斯锐信息技术公司' '大连斯锐信息技术公司' '天地伟业' '天猫' '天猫' '天猫' '天融信' '天阳科技'
'天阳科技' '天阳科技' '太极云软' '奇安信集团' '奇安信集团' '奇安信集团' '奇虎360' '奇虎360' '奥哲' '奥哲'
'奥哲' '奥哲' '奥哲' '字节跳动' '字节跳动' '字节跳动' '宇信科技' '宇信科技' '宇信科技' '宇信科技' '宇信科技'
'宇信科技' '安硕信息技术' '安硕信息技术' '安硕信息技术' '安硕信息技术' '安硕信息技术' '安硕信息技术' '安硕信息技术'
'容联云通讯' '容联云通讯' '富士康' '富士康' '小码教育' '小码教育' '小码教育' '小米' '小米' '小米' '小红书'
'小赢科技' '小鱼易连' '常州科睿达' '平安科技' '并连网络' '广东美云智数' '广州奥格智能科技' '广州飞歌' '建信金科'
'建信金科' '建信金科' '建信金科' '开域集团' '影谱科技' '徐州荣鼎' '微创软件' '微微科技' '微盟' '德科信息'
'德科信息' '德科信息' '心医国际' '思必驰科技股份有...' '思特奇' '思特奇' '思特奇' '恒安嘉新' '恒安嘉新' '恒安嘉新'
'恒安嘉新' '恒安嘉新' '恒安嘉新' '慧博云通' '慧博云通' '慧博云通' '慧点科技' '慧科集团' '成都东方通'
'成都迈思创智科技公司' '找钢网' '拓保软件' '拓保软件' '拓保软件' '拓保软件' '拓保软件' '拓尔思' '拓尔思' '拓尔思'
'拓维云创' '拓维云创' '拓维云创' '拓维云创' '拓维云创' '拓维云创' '拓维信息' '掌门教育' '掌门教育' '掌门教育'
'探迹' '探迹' '搜狐视频' '文因互联' '文思海辉' '新模式互联网科技' '新致软件' '方正国际' '旷视MEGVII' '明略科技'
'明略科技' '明略科技' '易商数科' '易宝软件' '易宝软件' '易宝软件' '易宝软件' '易宝软件' '易宝软件' '易宝软件'
'易宝软件' '易联众民生' '易联众民生' '易联众民生' '易诚互动' '易诚互动' '易诚互动' '易诚互动' '晨星微云' '智业软件'
'智牛数字科技' '智蓝云信' '智龙网景' '有赞' '朗新科技' '朗新科技' '朗新科技' '杭州海康威视' '杭州海康威视'
'杭州海康威视' '某大型互联网上市集团公司' '某大型互联网上市集团公司' '某大型互联网公司' '某大型互联网公司' '某大型互联网公司'
'某大型知名互联网上市公司' '某大型知名计算机软件上市公司' '某大型知名计算机软件上市公司' '某大型知名计算机软件上市公司'
'某大型计算机软件公司' '某大型计算机软件公司' '某大型计算机软件公司' '某计算机软件公司' '某计算机软件公司' '柯莱特集团'
'柯莱特集团' '柯莱特集团' '柯莱特集团' '柯莱特集团' '柯莱特集团' '武汉佰钧成' '武汉佰钧成技术' '武汉佰钧成技术'
'武汉佰钧成技术' '汉克时代' '汉克时代' '汉克时代' '汉克时代' '汉克时代' '汉克时代' '汉克时代' '汉王科技' '法信公证云'
'法本' '法本' '法本' '法本' '法本' '法本' '法本' '法本' '法本' '法本' '法本' '法本信息' '法本信息'
'法本信息' '法本信息' '泛微网络' '泛微网络' '浙江大华' '浙江大华' '浙江大华' '浩鲸科技' '浪潮' '浪潮' '浪潮'
'浪潮' '浪潮软件集团' '浪潮软件集团' '浪潮集团' '海势科技' '海北科技' '海康威视' '海康威视' '海康威视' '涂鸦智能'
'涂鸦智能' '涂鸦智能' '润和软件' '润和软件' '润和软件' '润和软件' '润和软件' '润和软件' '淘宝' '深信服科技'
'深信服科技' '深信服科技' '深圳华为' '深圳华为' '深圳国会' '深圳市锐明技术' '深圳网新新思' '深高速顾问' '满帮集团'
'滴滴' '滴滴' '滴滴' '潭州教育' '爱奇艺' '爱贝网络' '爱贝网络' '爱贝网络' '爱贝网络' '猿辅导' '猿辅导'
'甜橙金融' '用友网络' '申朴信息' '畅享信息' '百度' '百度' '百度' '盛博汇' '直真科技' '瞬联科技' '瞬联科技'
'瞬联科技' '瞬联科技' '瞬联软件科技' '知学云科技' '知道创宇' '知道创宇' '神州信息' '神州信息' '神州信息' '神州信息'
'神州信息' '神州信息' '神州信息' '神州信息' '神州信息' '神州数码' '神州新桥' '神策数据' '科东电力' '科东电力'
'科东电力' '科电航宇' '科蓝软件' '税友集团' '税友集团' '稿定科技' '童程童美' '童程童美' '童程童美' '童程童美'
'童程童美' '童程童美' '紫光软件' '绿云' '绿盟科技' '绿盟科技' '绿盟科技' '网宿科技' '网易杭州' '美亚柏科'
'美亚柏科' '美亚柏科' '美团' '美的IoT' '美的it' '老虎集团' '联友科技' '能链集团' '腾讯' '腾讯' '腾讯'
'腾讯' '腾讯' '腾讯' '腾讯' '腾讯' '腾讯' '腾讯' '腾讯科技(北京)公司' '致景科技' '致远互联' '航天宏图'
'航班管家' '船奇' '艾融软件' '艾融软件' '艾融软件' '艾融软件' '芒果tv' '苏州同程艺龙' '菜鸟网络' '菜鸟网络'
'菜鸟网络' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '蚂蚁金服' '西门子研究院'
'观安' '观安信息' '观安信息' '观安信息' '讯方技术股份' '诚迈科技' '诚迈科技' '谷科软件' '豌豆思维' '贝壳找房'
'货拉拉科技' '赛意信息' '赛意信息' '赞同科技' '赞同科技' '软通动力' '软通动力' '软通动力' '软通动力' '软通动力'
'软通动力' '软通动力' '软通动力' '软通动力' '软通动力' '软通动力信息技术集团' '软通动力信息技术集团' '软通动力信息技术集团'
'软通动力信息技术集团' '软通动力信息技术集团' '软通动力信息技术集团' '软通动力信息技术集团' '软通动力信息技术集团'
'软通动力信息技术集团' '软通动力信息技术集团' '软通动力信息技术集团' '达内英才添翼' '迈思信息' '迈思信息' '迪维勒普科技'
'通付盾' '邦盛科技' '邦盛科技' '邦盛科技' '邦盛科技' '酷家乐' '重庆新致金服' '金山云' '金现代' '银丰新融'
'银丰新融' '银河熠熠' '银河熠熠' '长亮科技' '长亮科技' '长亮科技' '长亮科技' '长扬科技' '阅文集团' '阅文集团'
'阿里云' '阿里云' '阿里云' '阿里云' '阿里云' '阿里云' '阿里云' '阿里云' '阿里巴巴' '阿里巴巴' '阿里巴巴'
'阿里巴巴' '阿里巴巴国际事业部' '阿里巴巴国际事业部' '阿里巴巴国际事业部' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团'
'阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团' '阿里巴巴集团'
'阿里巴巴集团' '阿里巴巴集团' '阿里巴巴零售通' '阿里巴巴零售通' '阿里集团' '阿里集团' '阿里集团' '阿里集团' '阿里集团'
'震坤行' '震坤行' '震坤行' '青云' '顺丰科技' '领健Linkedcare ' '领创集团' '首都在线' '马上消费金融'
'魔门塔科技' '黑帕云' '龙湖集团']
['21cn', '360集团', 'BBD', 'CloudBU', 'CloudBU', 'Each+', 'G7', 'IBM', 'IBM', 'IBM', 'IBM', 'LAZADA', 'OPPO', 'OPPO', 'PACTERA', 'PACTERA', 'PayPal', 'SmartX', 'SmartX', 'SmartX', 'TecomScience', 'Testin 云测', 'ThoughtWorks', 'ThoughtWorks', 'Udesk', 'VIPCODE', 'bilibili', 'tellhowsoft', 'wlaike', '三一重工', '三七互娱-妙小程', '三维天地', '上海小牛互娱', '上海屹通', '上海数巧', '上海数巧', '上海理想', '上海百胜软件', '上海菜信网络科技...', '东方瑞通', '东财基金', '东软集团', '东软集团', '中信网科', '中信网科', '中信网科', '中关村科金', '中关村科金', '中关村科金', '中兴通讯股份有限公司', '中兴通讯股份有限公司', '中启动力', '中国电信云', '中国电信云', '中国电信集成', '中国电信集成', '中慧云启科技集团', '中慧云启科技集团', '中数通', '中电文思海辉', '中电文思海辉', '中电文思海辉', '中电文思海辉', '中电金信', '中电金信', '中电金信', '中电金信', '中电金信', '中电金信', '中电金信', '中电金信', '中科创达软件', '中科创达软件', '中科曙光', '中科软', '中科软', '中科软', '中科软科技', '中科软科技', '中科软科技有限公司', '中科软科技有限公司', '中科迪宏', '中科迪宏', '中科迪宏', '中科金财', '中科院信息技术', '中移物联网', '中职通教育', '中软华腾', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '中软国际', '久远银海', '久远银海', '久远银海', '乐学优课', '云从科技', '云智慧', '亚信科技', '亚信科技', '亚信科技', '亚信科技', '亚信科技', '亚信科技', '亚信科技', '京东世纪贸易有限公司', '京东世纪贸易有限公司', '京东科技集团', '京东集团', '京东集团', '京北方', '京北方', '京北方', '京北方', '京北方', '京北方', '京北方', '人瑞人才', '人瑞集团', '亿咖通', '亿磐深圳', '亿达信息', '亿达信息', '亿达信息', '今天国际', '今日头条', '今日头条', '今日头条', '仙豆智能', '众言科技', '优哲科技', '优哲科技', '优锘科技', '传智教育', '传智教育', '传音控股', '信必优Symbio', '信雅达科技股份', '信雅达科技股份', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '傲梦网络科技', '光庭', '公瑾科技', '六星教育', '兴业数金', '兴业数金', '兴海物联', '农信互联', '凯捷', '前海恒道智融', '北京乐博乐博', '北京华宇信息', '北京南天', '北京博睿宏远', '北京外企德科人力...', '北京外企德科人力...', '北京外企德科人力...', '北京外企德科人力...', '北京字节跳动', '北京字节跳动', '北京宜通', '北京恒华伟业科技...', '北京掌上先机', '北京极智嘉科技股...', '北京瑞友科技', '北京百度网讯有限公司', '北京百度网讯有限公司', '北京知道创宇', '北京知道创宇', '北京纬创', '北大软件', '北大软件', '北明软件', '北明软件', '北明软件', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为', '华为成都研究所', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术有限公司', '华为技术武研所', '华为终端有限公司', '华清远见', '华清远见', '华钦软件CLPS', '华钦软件CLPS', '华钦软件CLPS', '南京亚信软件', '南京亚信软件', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '博彦科技', '卫宁健康', '卫宁健康', '卫宁健康', '厦门科拓股份', '发现报告', '叮咚买菜', '合原瑞成', '同方鼎欣', '同方鼎欣', '同盾科技', '同程艺龙', '同花顺', '和骏出行', '品众互动', '哈啰出行', '哈啰出行', '唯品会', '嘉为科技', '四川准达', '四方精创', '四维图新', '国双科技', '国双科技', '国双科技', '国双科技', '国泰新点', '国美控股集团', '埃森哲', '多比网络', '大搜车', '大账房', '大连华信计算机', '大连华信计算机', '大连斯锐信息技术公司', '大连斯锐信息技术公司', '天地伟业', '天猫', '天猫', '天猫', '天融信', '天阳科技', '天阳科技', '天阳科技', '太极云软', '奇安信集团', '奇安信集团', '奇安信集团', '奇虎360', '奇虎360', '奥哲', '奥哲', '奥哲', '奥哲', '奥哲', '字节跳动', '字节跳动', '字节跳动', '宇信科技', '宇信科技', '宇信科技', '宇信科技', '宇信科技', '宇信科技', '安硕信息技术', '安硕信息技术', '安硕信息技术', '安硕信息技术', '安硕信息技术', '安硕信息技术', '安硕信息技术', '容联云通讯', '容联云通讯', '富士康', '富士康', '小码教育', '小码教育', '小码教育', '小米', '小米', '小米', '小红书', '小赢科技', '小鱼易连', '常州科睿达', '平安科技', '并连网络', '广东美云智数', '广州奥格智能科技', '广州飞歌', '建信金科', '建信金科', '建信金科', '建信金科', '开域集团', '影谱科技', '徐州荣鼎', '微创软件', '微微科技', '微盟', '德科信息', '德科信息', '德科信息', '心医国际', '思必驰科技股份有...', '思特奇', '思特奇', '思特奇', '恒安嘉新', '恒安嘉新', '恒安嘉新', '恒安嘉新', '恒安嘉新', '恒安嘉新', '慧博云通', '慧博云通', '慧博云通', '慧点科技', '慧科集团', '成都东方通', '成都迈思创智科技公司', '找钢网', '拓保软件', '拓保软件', '拓保软件', '拓保软件', '拓保软件', '拓尔思', '拓尔思', '拓尔思', '拓维云创', '拓维云创', '拓维云创', '拓维云创', '拓维云创', '拓维云创', '拓维信息', '掌门教育', '掌门教育', '掌门教育', '探迹', '探迹', '搜狐视频', '文因互联', '文思海辉', '新模式互联网科技', '新致软件', '方正国际', '旷视MEGVII', '明略科技', '明略科技', '明略科技', '易商数科', '易宝软件', '易宝软件', '易宝软件', '易宝软件', '易宝软件', '易宝软件', '易宝软件', '易宝软件', '易联众民生', '易联众民生', '易联众民生', '易诚互动', '易诚互动', '易诚互动', '易诚互动', '晨星微云', '智业软件', '智牛数字科技', '智蓝云信', '智龙网景', '有赞', '朗新科技', '朗新科技', '朗新科技', '杭州海康威视', '杭州海康威视', '杭州海康威视', '某大型互联网上市集团公司', '某大型互联网上市集团公司', '某大型互联网公司', '某大型互联网公司', '某大型互联网公司', '某大型知名互联网上市公司', '某大型知名计算机软件上市公司', '某大型知名计算机软件上市公司', '某大型知名计算机软件上市公司', '某大型计算机软件公司', '某大型计算机软件公司', '某大型计算机软件公司', '某计算机软件公司', '某计算机软件公司', '柯莱特集团', '柯莱特集团', '柯莱特集团', '柯莱特集团', '柯莱特集团', '柯莱特集团', '武汉佰钧成', '武汉佰钧成技术', '武汉佰钧成技术', '武汉佰钧成技术', '汉克时代', '汉克时代', '汉克时代', '汉克时代', '汉克时代', '汉克时代', '汉克时代', '汉王科技', '法信公证云', '法本', '法本', '法本', '法本', '法本', '法本', '法本', '法本', '法本', '法本', '法本', '法本信息', '法本信息', '法本信息', '法本信息', '泛微网络', '泛微网络', '浙江大华', '浙江大华', '浙江大华', '浩鲸科技', '浪潮', '浪潮', '浪潮', '浪潮', '浪潮软件集团', '浪潮软件集团', '浪潮集团', '海势科技', '海北科技', '海康威视', '海康威视', '海康威视', '涂鸦智能', '涂鸦智能', '涂鸦智能', '润和软件', '润和软件', '润和软件', '润和软件', '润和软件', '润和软件', '淘宝', '深信服科技', '深信服科技', '深信服科技', '深圳华为', '深圳华为', '深圳国会', '深圳市锐明技术', '深圳网新新思', '深高速顾问', '满帮集团', '滴滴', '滴滴', '滴滴', '潭州教育', '爱奇艺', '爱贝网络', '爱贝网络', '爱贝网络', '爱贝网络', '猿辅导', '猿辅导', '甜橙金融', '用友网络', '申朴信息', '畅享信息', '百度', '百度', '百度', '盛博汇', '直真科技', '瞬联科技', '瞬联科技', '瞬联科技', '瞬联科技', '瞬联软件科技', '知学云科技', '知道创宇', '知道创宇', '神州信息', '神州信息', '神州信息', '神州信息', '神州信息', '神州信息', '神州信息', '神州信息', '神州信息', '神州数码', '神州新桥', '神策数据', '科东电力', '科东电力', '科东电力', '科电航宇', '科蓝软件', '税友集团', '税友集团', '稿定科技', '童程童美', '童程童美', '童程童美', '童程童美', '童程童美', '童程童美', '紫光软件', '绿云', '绿盟科技', '绿盟科技', '绿盟科技', '网宿科技', '网易杭州', '美亚柏科', '美亚柏科', '美亚柏科', '美团', '美的IoT', '美的it', '老虎集团', '联友科技', '能链集团', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯', '腾讯科技(北京)公司', '致景科技', '致远互联', '航天宏图', '航班管家', '船奇', '艾融软件', '艾融软件', '艾融软件', '艾融软件', '芒果tv', '苏州同程艺龙', '菜鸟网络', '菜鸟网络', '菜鸟网络', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '蚂蚁金服', '西门子研究院', '观安', '观安信息', '观安信息', '观安信息', '讯方技术股份', '诚迈科技', '诚迈科技', '谷科软件', '豌豆思维', '贝壳找房', '货拉拉科技', '赛意信息', '赛意信息', '赞同科技', '赞同科技', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '软通动力信息技术集团', '达内英才添翼', '迈思信息', '迈思信息', '迪维勒普科技', '通付盾', '邦盛科技', '邦盛科技', '邦盛科技', '邦盛科技', '酷家乐', '重庆新致金服', '金山云', '金现代', '银丰新融', '银丰新融', '银河熠熠', '银河熠熠', '长亮科技', '长亮科技', '长亮科技', '长亮科技', '长扬科技', '阅文集团', '阅文集团', '阿里云', '阿里云', '阿里云', '阿里云', '阿里云', '阿里云', '阿里云', '阿里云', '阿里巴巴', '阿里巴巴', '阿里巴巴', '阿里巴巴', '阿里巴巴国际事业部', '阿里巴巴国际事业部', '阿里巴巴国际事业部', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴集团', '阿里巴巴零售通', '阿里巴巴零售通', '阿里集团', '阿里集团', '阿里集团', '阿里集团', '阿里集团', '震坤行', '震坤行', '震坤行', '青云', '顺丰科技', '领健Linkedcare ', '领创集团', '首都在线', '马上消费金融', '魔门塔科技', '黑帕云', '龙湖集团']
# 将重复数据的重复数据删除 得到我们想要的结果 在多个城市招聘的公司有332家
print(company_series[company_series.duplicated()].drop_duplicates())
1 21cn
3 360集团
19 BBD
36 CloudBU
47 Each+
...
3370 首都在线
3372 马上消费金融
3394 魔门塔科技
3408 黑帕云
3418 龙湖集团
Length: 332, dtype: object
综上:关于python和java相关岗位,在多个城市招聘的公司有332家。
绘制公司名称词云
# 统计一下在多个城市招聘的各个公司出现的频数 value_counts()
company_series[company_series.duplicated()].value_counts()
阿里巴巴集团 13
华为技术有限公司 12
华为 12
法本 11
软通动力信息技术集团 11
..
盛博汇 1
微创软件 1
能链集团 1
神策数据 1
苏州同程艺龙 1
Length: 332, dtype: int64
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
job_groups = df.groupby(['公司名称','城市'])
company_list = [x[0] for x in job_groups.size().index]
company_series = pd.Series(company_list)
company_info= company_series[company_series.duplicated()].value_counts()
all_company_name_frequence = dict(zip(company_info.index,company_info.values))
# print(all_company_name_frequence)
# print(len(all_company_name_frequence))
w = WordCloud(width=640,height=480,background_color='white',
font_path='simhei',mask=None,
stopwords=None,contour_color='gray',contour_width=1,
max_font_size=80, min_font_size=4,scale = 4
)
w.generate_from_frequencies(all_company_name_frequence)
w.to_file('公司名称词云2.png')
plt.imshow(w)
plt.show()
更多词云绘制方法,建议访问另一篇博文:https://blog.csdn.net/weixin_43521165/article/details/120335521
在同一城市关于 python java 招聘超过1个岗位的公司
job_groups.size()[job_groups.size().values > 1]
公司名称 城市
360集团 北京 3
58集团 北京 2
99cms 天津 3
AKULAKU 深圳 4
APLL 重庆 2
..
黑帕云 西安 2
黑曜石网络 苏州 3
黑鸥科技 重庆 2
龙嘉教育科技 西安 2
龙达财税 广州 2
Length: 1258, dtype: int64
薪资比较
我们原来的数据表里,薪资是以区间的形式给出的。
所以要比较薪资,首先要提取出薪资的具体值,包括区间的最低 最高 和 平均值
读取并查看数据
import pandas as pd
import matplotlib.pyplot as plt
# 设置数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
# 查看数据
print(df.head())
0 11770 岗位 城市 岗位具体名称 公司名称 所在区域 所在街道 \
0 1 11771 python 北京 Python 工程师 爱奇艺 海淀区 中关村
1 2 11772 python 北京 Python 快手 海淀区 上地
2 3 11773 python 北京 初中级Python工程师 智慧星光 NaN NaN
3 4 11774 python 北京 初中级python工程师 软通动力 大兴区 亦庄
4 5 11775 python 北京 Python 爱奇艺 海淀区 中关村
公司类型 公司规模 学历要求 工作经验 融资情况 \
0 互联网 1000-9999人 本科 经验不限 已上市
1 社交网络 10000人以上 本科 1-3年 已上市
2 互联网 500-999人 本科 1-3年 未融资
3 计算机软件 10000人以上 大专 1-3年 已上市
4 互联网 1000-9999人 本科 1-3年 已上市
福利待遇 \
0 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假......
1 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...
2 年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助......
3 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...
4 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补......
薪资(K) 发放月数
0 20-40 12薪
1 25-50 12薪
2 5-10 12薪
3 9-12 12薪
4 20-40 12薪
新增低中高薪资列
df['薪资(K)'].str.split('-').values
array([list(['20', '40']), list(['25', '50']), list(['5', '10']), ...,
list(['10', '11']), list(['9', '14']), list(['12', '18'])],
dtype=object)
# import numpy as np
# data = np.asarray([df['薪资(K)'].str.split('-').values])
# print(data)
# print(data[:,:1])
df['最低薪资'] = df['薪资(K)'].apply(lambda x:int(x.split('-')[0]))
df['最高薪资'] = df['薪资(K)'].apply(lambda x:int(x.split('-')[1]))
df['平均薪资'] = (df['最高薪资'] + df['最低薪资']) / 2
print(df)
0 11770 岗位 城市 岗位具体名称 公司名称 所在区域 \
0 1 11771 python 北京 Python 工程师 爱奇艺 海淀区
1 2 11772 python 北京 Python 快手 海淀区
2 3 11773 python 北京 初中级Python工程师 智慧星光 NaN
3 4 11774 python 北京 初中级python工程师 软通动力 大兴区
4 5 11775 python 北京 Python 爱奇艺 海淀区
... ... ... ... ... ... ... ...
7593 7594 19364 java 重庆 Java高级开发工程师 中林广生 九龙坡区
7594 7595 19365 java 重庆 Java 创易康软件 NaN
7595 7596 19366 java 重庆 Java 非鱼计划 NaN
7596 7597 19367 java 重庆 Java 重庆新致金服 渝北区
7597 7598 19368 java 重庆 JAVA项目经理 德帆科技 南岸区
所在街道 公司类型 公司规模 学历要求 工作经验 融资情况 \
0 中关村 互联网 1000-9999人 本科 经验不限 已上市
1 上地 社交网络 10000人以上 本科 1-3年 已上市
2 NaN 互联网 500-999人 本科 1-3年 未融资
3 亦庄 计算机软件 10000人以上 大专 1-3年 已上市
4 中关村 互联网 1000-9999人 本科 1-3年 已上市
... ... ... ... ... ... ...
7593 石桥铺 计算机软件 20-99人 本科 1-3年 未融资
7594 NaN 计算机软件 1000-9999人 本科 1-3年 已上市
7595 NaN 互联网 0-20人 本科 5-10年 未融资
7596 新牌坊 计算机软件 1000-9999人 本科 3-5年 未融资
7597 南坪 计算机软件 100-499人 大专 5-10年 不需要融资
福利待遇 \
0 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假......
1 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...
2 年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助......
3 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...
4 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补......
... ...
7593 年终奖,加班补助,五险一金,定期体检
7594 带薪年假,餐补,股票期权,节日福利,五险一金,通讯补贴,年终奖,定期体检,交通补助......
7595 加班补助,全勤奖,五险一金
7596 加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖......
7597 带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金......
薪资(K) 发放月数 最低薪资 最高薪资 平均薪资
0 20-40 12薪 20 40 30.0
1 25-50 12薪 25 50 37.5
2 5-10 12薪 5 10 7.5
3 9-12 12薪 9 12 10.5
4 20-40 12薪 20 40 30.0
... ... ... ... ... ...
7593 10-11 12薪 10 11 10.5
7594 5-9 12薪 5 9 7.0
7595 10-11 12薪 10 11 10.5
7596 9-14 13薪 9 14 11.5
7597 12-18 12薪 12 18 15.0
[7598 rows x 19 columns]
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7598 entries, 0 to 7597
Data columns (total 19 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 0 7598 non-null int64
1 11770 7598 non-null int64
2 岗位 7598 non-null object
3 城市 7598 non-null object
4 岗位具体名称 7598 non-null object
5 公司名称 7598 non-null object
6 所在区域 6532 non-null object
7 所在街道 6522 non-null object
8 公司类型 7598 non-null object
9 公司规模 7598 non-null object
10 学历要求 7598 non-null object
11 工作经验 7598 non-null object
12 融资情况 7598 non-null object
13 福利待遇 7598 non-null object
14 薪资(K) 7598 non-null object
15 发放月数 7598 non-null object
16 最低薪资 7598 non-null int64
17 最高薪资 7598 non-null int64
18 平均薪资 7598 non-null float64
dtypes: float64(1), int64(4), object(14)
memory usage: 712.4+ KB
None
计算公司平均年薪
首先我们得把发放月数列中的文字去掉,保留数字部分
并尝试增加新的平均年薪列
df['发放月数'] = df['发放月数'].str.replace('薪','')
# 因为发放月数列 还是字符串型 不能进行四则运算 所以 astype 转化成浮点型再计算 最后结果除以10 把单位从 千 变成 万
df['平均年薪(万)'] = df['发放月数'].astype(float) * df['平均薪资'] / 10
print(df)
df.to_csv('new_boss_data.csv',encoding='utf8')
0 11770 岗位 城市 岗位具体名称 公司名称 所在区域 \
0 1 11771 python 北京 Python 工程师 爱奇艺 海淀区
1 2 11772 python 北京 Python 快手 海淀区
2 3 11773 python 北京 初中级Python工程师 智慧星光 NaN
3 4 11774 python 北京 初中级python工程师 软通动力 大兴区
4 5 11775 python 北京 Python 爱奇艺 海淀区
... ... ... ... ... ... ... ...
7593 7594 19364 java 重庆 Java高级开发工程师 中林广生 九龙坡区
7594 7595 19365 java 重庆 Java 创易康软件 NaN
7595 7596 19366 java 重庆 Java 非鱼计划 NaN
7596 7597 19367 java 重庆 Java 重庆新致金服 渝北区
7597 7598 19368 java 重庆 JAVA项目经理 德帆科技 南岸区
所在街道 公司类型 公司规模 学历要求 工作经验 融资情况 \
0 中关村 互联网 1000-9999人 本科 经验不限 已上市
1 上地 社交网络 10000人以上 本科 1-3年 已上市
2 NaN 互联网 500-999人 本科 1-3年 未融资
3 亦庄 计算机软件 10000人以上 大专 1-3年 已上市
4 中关村 互联网 1000-9999人 本科 1-3年 已上市
... ... ... ... ... ... ...
7593 石桥铺 计算机软件 20-99人 本科 1-3年 未融资
7594 NaN 计算机软件 1000-9999人 本科 1-3年 已上市
7595 NaN 互联网 0-20人 本科 5-10年 未融资
7596 新牌坊 计算机软件 1000-9999人 本科 3-5年 未融资
7597 南坪 计算机软件 100-499人 大专 5-10年 不需要融资
福利待遇 \
0 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假......
1 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...
2 年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助......
3 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...
4 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补......
... ...
7593 年终奖,加班补助,五险一金,定期体检
7594 带薪年假,餐补,股票期权,节日福利,五险一金,通讯补贴,年终奖,定期体检,交通补助......
7595 加班补助,全勤奖,五险一金
7596 加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖......
7597 带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金......
薪资(K) 发放月数 最低薪资 最高薪资 平均薪资 平均年薪(万)
0 20-40 12 20 40 30.0 36.00
1 25-50 12 25 50 37.5 45.00
2 5-10 12 5 10 7.5 9.00
3 9-12 12 9 12 10.5 12.60
4 20-40 12 20 40 30.0 36.00
... ... ... ... ... ... ...
7593 10-11 12 10 11 10.5 12.60
7594 5-9 12 5 9 7.0 8.40
7595 10-11 12 10 11 10.5 12.60
7596 9-14 13 9 14 11.5 14.95
7597 12-18 12 12 18 15.0 18.00
[7598 rows x 20 columns]
找出所有城市年薪最高的公司
df.sort_values(by='平均年薪(万)',ascending=False,inplace=True)
df.head(20)
0 | 11770 | 岗位 | 城市 | 岗位具体名称 | 公司名称 | 所在区域 | 所在街道 | 公司类型 | 公司规模 | 学历要求 | 工作经验 | 融资情况 | 福利待遇 | 薪资(K) | 发放月数 | 最低薪资 | 最高薪资 | 平均薪资 | 平均年薪(万) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
4609 | 4610 | 16380 | java | 深圳 | Java高级架构师(专家级) | 腾讯 | 南山区 | 科技园 | 互联网 | 10000人以上 | 本科 | 5-10年 | 已上市 | 免费班车,节日福利,五险一金,定期体检,补充医疗保险,年终奖,带薪年假,餐补... | 150-200 | 16 | 150 | 200 | 175.0 | 280.0 |
4584 | 4585 | 16355 | java | 深圳 | Java中间件开发工程师 | 货拉拉科技 | 福田区 | 梅林 | 互联网 | 1000-9999人 | 本科 | 5-10年 | D轮及以上 | 年终奖,交通补助,零食下午茶,员工旅游,带薪年假,五险一金,节日福利... | 60-90 | 15 | 60 | 90 | 75.0 | 112.5 |
4613 | 4614 | 16384 | java | 深圳 | Java | 腾讯 | 南山区 | 科技园 | 互联网 | 10000人以上 | 本科 | 经验不限 | 已上市 | 五险一金,定期体检,带薪年假,免费班车,年终奖,餐补,节日福利,补充医疗保险... | 40-70 | 18 | 40 | 70 | 55.0 | 99.0 |
4551 | 4552 | 16322 | java | 深圳 | Java | 腾讯 | 南山区 | 科技园 | 互联网 | 10000人以上 | 本科 | 经验不限 | 已上市 | 免费班车,节日福利,年终奖,补充医疗保险,带薪年假,五险一金,定期体检,餐补... | 40-70 | 18 | 40 | 70 | 55.0 | 99.0 |
4647 | 4648 | 16418 | java | 深圳 | Java | 顺丰科技 | 南山区 | 科技园 | 互联网 | 1000-9999人 | 本科 | 5-10年 | 不需要融资 | 餐补,免费班车,带薪年假,包吃,交通补助,股票期权,定期体检,五险一金,年终奖,节日福利,员... | 50-70 | 16 | 50 | 70 | 60.0 | 96.0 |
4604 | 4605 | 16375 | java | 深圳 | 推荐系统java架构师 | 腾讯 | 南山区 | 科技园 | 互联网 | 10000人以上 | 本科 | 5-10年 | 已上市 | 年终奖,五险一金,定期体检,免费班车,节日福利,带薪年假,补充医疗保险,餐补... | 50-70 | 16 | 50 | 70 | 60.0 | 96.0 |
4435 | 4436 | 16206 | java | 广州 | java 高级技术专家 | 蚂蚁金服 | 越秀区 | 中华广场 | 互联网 | 10000人以上 | 本科 | 5-10年 | 不需要融资 | 节日福利,免费班车,补充医疗保险,五险一金,年终奖,定期体检,包吃,带薪年假,员工旅游,餐补... | 60-90 | 12 | 60 | 90 | 75.0 | 90.0 |
4697 | 4698 | 16468 | java | 深圳 | Java 架构师 | OPPO | 南山区 | 前海 | 互联网 | 10000人以上 | 本科 | 5-10年 | 不需要融资 | 零食下午茶,股票期权,年终奖,带薪年假,定期体检,五险一金... | 60-90 | 12 | 60 | 90 | 75.0 | 90.0 |
4419 | 4420 | 16190 | java | 广州 | Java资深开发工程师 DMP广告 | 唯品会 | 海珠区 | 琶洲 | 互联网 | 10000人以上 | 本科 | 10年以上 | 已上市 | 补充医疗保险,股票期权,节日福利,包吃,免费班车,住房补贴,员工旅游,交通补助,通讯补贴,定... | 50-80 | 13 | 50 | 80 | 65.0 | 84.5 |
4565 | 4566 | 16336 | java | 深圳 | JAVA | 阿里巴巴集团 | 南山区 | 科技园 | 互联网 | 10000人以上 | 大专 | 3-5年 | 已上市 | 五险一金,免费班车,定期体检,补充医疗保险,年终奖,交通补助,股票期权,节日福利,餐补,加班... | 25-45 | 24 | 25 | 45 | 35.0 | 84.0 |
356 | 357 | 12127 | python | 上海 | 专有云交付平台高级研发工程师-Python | 腾讯 | 徐汇区 | 漕河泾 | 互联网 | 10000人以上 | 本科 | 5-10年 | 已上市 | 带薪年假,年终奖,五险一金,节日福利,餐补,定期体检,补充医疗保险,免费班车... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
258 | 259 | 12029 | python | 北京 | 专有云交付平台高级研发工程师-Python | 腾讯 | 海淀区 | 双榆树 | 互联网 | 10000人以上 | 本科 | 5-10年 | 已上市 | 五险一金,餐补,节日福利,补充医疗保险,年终奖,带薪年假,免费班车,定期体检... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
4627 | 4628 | 16398 | java | 深圳 | java高级研发工程师-深圳 | 腾讯 | 南山区 | 科技园 | 互联网 | 10000人以上 | 本科 | 3-5年 | 已上市 | 带薪年假,节日福利,年终奖,免费班车,定期体检,餐补,补充医疗保险,五险一金... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
4634 | 4635 | 16405 | java | 深圳 | Java高级工程师、java技术专家、架构师 | 阿里巴巴集团 | 南山区 | 海岸城 | 互联网 | 10000人以上 | 本科 | 经验不限 | 已上市 | 定期体检,交通补助,带薪年假,年终奖,节日福利,补充医疗保险,免费班车,股票期权,餐补,加班... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
4677 | 4678 | 16448 | java | 深圳 | Java高级开发工程师 | OPPO | 南山区 | 后海 | 互联网 | 10000人以上 | 本科 | 5-10年 | 不需要融资 | 股票期权,零食下午茶,五险一金,年终奖,带薪年假,定期体检... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
5707 | 5708 | 17478 | java | 苏州 | java高级研发工程师/技术专家 | 蚂蚁金服 | 虎丘区 | 科技城 | 互联网 | 10000人以上 | 学历不限 | 3-5年 | 不需要融资 | 免费班车,定期体检,包吃,五险一金,年终奖,节日福利,餐补,股票期权,补充医疗保险,员工旅游... | 30-60 | 18 | 30 | 60 | 45.0 | 81.0 |
4616 | 4617 | 16387 | java | 深圳 | Java高级技术专家 | 阿里巴巴集团 | NaN | NaN | 互联网 | 10000人以上 | 本科 | 10年以上 | 已上市 | 免费班车,餐补,带薪年假,年终奖,定期体检,五险一金,补充医疗保险,股票期权,交通补助,节日... | 35-65 | 16 | 35 | 65 | 50.0 | 80.0 |
4623 | 4624 | 16394 | java | 深圳 | 架构师-JAVA | 货拉拉科技 | 福田区 | 梅林 | 互联网 | 1000-9999人 | 本科 | 5-10年 | D轮及以上 | 带薪年假,节日福利,交通补助,年终奖,五险一金,零食下午茶,员工旅游... | 40-70 | 14 | 40 | 70 | 55.0 | 77.0 |
4528 | 4529 | 16299 | java | 深圳 | Java架构师 | 货拉拉科技 | 福田区 | 梅林 | 互联网 | 1000-9999人 | 本科 | 5-10年 | D轮及以上 | 节日福利,五险一金,年终奖,员工旅游,零食下午茶,带薪年假,交通补助... | 40-70 | 14 | 40 | 70 | 55.0 | 77.0 |
4669 | 4670 | 16440 | java | 深圳 | Java架构师 | 货拉拉科技 | 福田区 | 梅林 | 互联网 | 1000-9999人 | 本科 | 5-10年 | D轮及以上 | 节日福利,交通补助,零食下午茶,五险一金,带薪年假,年终奖,员工旅游... | 40-70 | 14 | 40 | 70 | 55.0 | 77.0 |
df['岗位具体名称'].values[0]
'Java高级架构师(专家级)'
绘制薪资排序柱状图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# 设置统计几家公司
num = 15
rects44 = plt.bar(range(num),df[0:num]['平均年薪(万)'])
# 标记每个柱形的具体数据 enumerate() 能同时返回循环的排序索引 和循环的数据
for index,rect in enumerate(rects44):
print(rect,index,df['岗位具体名称'][index])
plt.text(rect.get_x(), rect.get_height()+10, rect.get_height(),ha='left', va='bottom',rotation = 10)
plt.text(rect.get_x(), rect.get_height()+35, df['岗位具体名称'].values[index],ha='left', va='bottom',rotation = 45)
# 添加轴属性
plt.xlabel("公司名称")
plt.ylabel("平均年薪")
plt.xticks(range(num), df[0:num]['公司名称'],rotation = 90)
plt.title("公司平均年薪柱状图")
# 设置顶部边框颜色为 无
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
Rectangle(xy=(-0.4, 0), width=0.8, height=280, angle=0) 0 Python 工程师
Rectangle(xy=(0.6, 0), width=0.8, height=112.5, angle=0) 1 Python
Rectangle(xy=(1.6, 0), width=0.8, height=99, angle=0) 2 初中级Python工程师
Rectangle(xy=(2.6, 0), width=0.8, height=99, angle=0) 3 初中级python工程师
Rectangle(xy=(3.6, 0), width=0.8, height=96, angle=0) 4 Python
Rectangle(xy=(4.6, 0), width=0.8, height=96, angle=0) 5 python 开发工程师 (MJ000246)
Rectangle(xy=(5.6, 0), width=0.8, height=90, angle=0) 6 Python
Rectangle(xy=(6.6, 0), width=0.8, height=90, angle=0) 7 初级python
Rectangle(xy=(7.6, 0), width=0.8, height=84.5, angle=0) 8 后台研发工程师- Python / golang
Rectangle(xy=(8.6, 0), width=0.8, height=84, angle=0) 9 Python
Rectangle(xy=(9.6, 0), width=0.8, height=81, angle=0) 10 高级云平台开发工程师(go python)
Rectangle(xy=(10.6, 0), width=0.8, height=81, angle=0) 11 python工程师-平台方向
Rectangle(xy=(11.6, 0), width=0.8, height=81, angle=0) 12 python研发实习生
Rectangle(xy=(12.6, 0), width=0.8, height=81, angle=0) 13 Python后端开发
Rectangle(xy=(13.6, 0), width=0.8, height=81, angle=0) 14 python爬虫工程师
聚集区域统计
统计公司一般聚集在城市哪个区域
首先按照区域进行分组 然后计算该区域公司数量
区域信息由于在BOSS直聘上不是必填项 所以存在部分空值,我们需要对他进行去除
读取并查看数据
import pandas as pd
import matplotlib.pyplot as plt
# 设置数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
# 查看数据
df
0 | 11770 | 岗位 | 城市 | 岗位具体名称 | 公司名称 | 所在区域 | 所在街道 | 公司类型 | 公司规模 | 学历要求 | 工作经验 | 融资情况 | 福利待遇 | 薪资(K) | 发放月数 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 11771 | python | 北京 | Python 工程师 | 爱奇艺 | 海淀区 | 中关村 | 互联网 | 1000-9999人 | 本科 | 经验不限 | 已上市 | 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假... | 20-40 | 12薪 |
1 | 2 | 11772 | python | 北京 | Python | 快手 | 海淀区 | 上地 | 社交网络 | 10000人以上 | 本科 | 1-3年 | 已上市 | 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定... | 25-50 | 12薪 |
2 | 3 | 11773 | python | 北京 | 初中级Python工程师 | 智慧星光 | NaN | NaN | 互联网 | 500-999人 | 本科 | 1-3年 | 未融资 | 年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助... | 5-10 | 12薪 |
3 | 4 | 11774 | python | 北京 | 初中级python工程师 | 软通动力 | 大兴区 | 亦庄 | 计算机软件 | 10000人以上 | 大专 | 1-3年 | 已上市 | 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,... | 9-12 | 12薪 |
4 | 5 | 11775 | python | 北京 | Python | 爱奇艺 | 海淀区 | 中关村 | 互联网 | 1000-9999人 | 本科 | 1-3年 | 已上市 | 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补... | 20-40 | 12薪 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
7593 | 7594 | 19364 | java | 重庆 | Java高级开发工程师 | 中林广生 | 九龙坡区 | 石桥铺 | 计算机软件 | 20-99人 | 本科 | 1-3年 | 未融资 | 年终奖,加班补助,五险一金,定期体检 | 10-11 | 12薪 |
7594 | 7595 | 19365 | java | 重庆 | Java | 创易康软件 | NaN | NaN | 计算机软件 | 1000-9999人 | 本科 | 1-3年 | 已上市 | 带薪年假,餐补,股票期权,节日福利,五险一金,通讯补贴,年终奖,定期体检,交通补助... | 5-9 | 12薪 |
7595 | 7596 | 19366 | java | 重庆 | Java | 非鱼计划 | NaN | NaN | 互联网 | 0-20人 | 本科 | 5-10年 | 未融资 | 加班补助,全勤奖,五险一金 | 10-11 | 12薪 |
7596 | 7597 | 19367 | java | 重庆 | Java | 重庆新致金服 | 渝北区 | 新牌坊 | 计算机软件 | 1000-9999人 | 本科 | 3-5年 | 未融资 | 加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖... | 9-14 | 13薪 |
7597 | 7598 | 19368 | java | 重庆 | JAVA项目经理 | 德帆科技 | 南岸区 | 南坪 | 计算机软件 | 100-499人 | 大专 | 5-10年 | 不需要融资 | 带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金... | 12-18 | 12薪 |
7598 rows × 16 columns
删除区域中的空数据行
df.dropna(axis=0, how='any', subset=['所在区域'], inplace=True)
df.dropna(axis=0, how='any', subset=['所在街道'], inplace=True)
df
0 | 11770 | 岗位 | 城市 | 岗位具体名称 | 公司名称 | 所在区域 | 所在街道 | 公司类型 | 公司规模 | 学历要求 | 工作经验 | 融资情况 | 福利待遇 | 薪资(K) | 发放月数 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 11771 | python | 北京 | Python 工程师 | 爱奇艺 | 海淀区 | 中关村 | 互联网 | 1000-9999人 | 本科 | 经验不限 | 已上市 | 交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假... | 20-40 | 12薪 |
1 | 2 | 11772 | python | 北京 | Python | 快手 | 海淀区 | 上地 | 社交网络 | 10000人以上 | 本科 | 1-3年 | 已上市 | 全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定... | 25-50 | 12薪 |
3 | 4 | 11774 | python | 北京 | 初中级python工程师 | 软通动力 | 大兴区 | 亦庄 | 计算机软件 | 10000人以上 | 大专 | 1-3年 | 已上市 | 五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,... | 9-12 | 12薪 |
4 | 5 | 11775 | python | 北京 | Python | 爱奇艺 | 海淀区 | 中关村 | 互联网 | 1000-9999人 | 本科 | 1-3年 | 已上市 | 带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补... | 20-40 | 12薪 |
6 | 7 | 11777 | python | 北京 | Python | 腾讯 | 昌平区 | 南邵 | 互联网 | 10000人以上 | 本科 | 3-5年 | 已上市 | 带薪年假,餐补,节日福利,五险一金,年终奖,定期体检,补充医疗保险,免费班车... | 19-25 | 12薪 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
7591 | 7592 | 19362 | java | 重庆 | Java中高级工程师 | 拓普森 | 渝北区 | 汽博中心 | 电子商务 | 20-99人 | 大专 | 5-10年 | 未融资 | 6险1金,节日福利,零食下午茶,带薪年假,员工旅游,全勤奖,定期体检,餐补,交通补助... | 12-17 | 12薪 |
7592 | 7593 | 19363 | java | 重庆 | JAVA | 重庆新致金服 | 渝北区 | 新牌坊 | 计算机软件 | 1000-9999人 | 大专 | 1-3年 | 未融资 | 加班补助,股票期权,带薪年假,年终奖,五险一金,定期体检,节日福利,员工旅游... | 6-8 | 13薪 |
7593 | 7594 | 19364 | java | 重庆 | Java高级开发工程师 | 中林广生 | 九龙坡区 | 石桥铺 | 计算机软件 | 20-99人 | 本科 | 1-3年 | 未融资 | 年终奖,加班补助,五险一金,定期体检 | 10-11 | 12薪 |
7596 | 7597 | 19367 | java | 重庆 | Java | 重庆新致金服 | 渝北区 | 新牌坊 | 计算机软件 | 1000-9999人 | 本科 | 3-5年 | 未融资 | 加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖... | 9-14 | 13薪 |
7597 | 7598 | 19368 | java | 重庆 | JAVA项目经理 | 德帆科技 | 南岸区 | 南坪 | 计算机软件 | 100-499人 | 大专 | 5-10年 | 不需要融资 | 带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金... | 12-18 | 12薪 |
6522 rows × 16 columns
区域分组
area_group = df.groupby('所在区域').size().sort_values(ascending = False)
area_group_split = area_group[0:15]
area_group2 = df.groupby(['所在区域','城市']).size().sort_values(ascending = False)
print(area_group2[0:15])
area_group_split = area_group2[0:15]
print(area_group2[0:15].index)
print(area_group2[0:15].index[0][0])
所在区域 城市
雁塔区 西安 430
武侯区 成都 340
南山区 深圳 327
岳麓区 长沙 303
思明区 厦门 284
苏州工业园区 苏州 280
海淀区 北京 267
渝北区 重庆 222
浦东新区 上海 210
洪山区 武汉 195
朝阳区 北京 192
江夏区 武汉 181
天河区 广州 179
金水区 郑州 171
滨江区 杭州 150
dtype: int64
MultiIndex([( '雁塔区', '西安'),
( '武侯区', '成都'),
( '南山区', '深圳'),
( '岳麓区', '长沙'),
( '思明区', '厦门'),
('苏州工业园区', '苏州'),
( '海淀区', '北京'),
( '渝北区', '重庆'),
( '浦东新区', '上海'),
( '洪山区', '武汉'),
( '朝阳区', '北京'),
( '江夏区', '武汉'),
( '天河区', '广州'),
( '金水区', '郑州'),
( '滨江区', '杭州')],
names=['所在区域', '城市'])
雁塔区
绘制区域分布图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
area_group_split = area_group_split[::-1]
rects51 = plt.barh(range(len(area_group_split.index)),area_group_split.values)
for rect in rects51:
# print(rect)
plt.text(rect.get_width()+10,rect.get_y()+0.1,rect.get_width(),ha='left', va='bottom')
# plt.text(rect.get_x(), rect.get_height()+35, df['岗位具体名称'].values[index],ha='left', va='bottom',rotation = 45)
# 添加轴属性
plt.ylabel("城市区域")
plt.xlabel("分布数量")
plt.yticks(range(len(area_group_split)), area_group_split.index)
plt.title("公司区域分布数量排行图")
# 设置顶部边框颜色为 无
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
查看具体公司区域占比
西安雁塔区怎么那么多企业?
看看都是谁在
xi_an = df.groupby(['城市','所在区域']).get_group(('西安','雁塔区'))
print(len(xi_an))
xi_an
431
0 | 11770 | 岗位 | 城市 | 岗位具体名称 | 公司名称 | 所在区域 | 所在街道 | 公司类型 | 公司规模 | 学历要求 | 工作经验 | 融资情况 | 福利待遇 | 薪资(K) | 发放月数 | 最低薪资 | 最高薪资 | 平均薪资 | 平均年薪(万) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1629 | 1630 | 13400 | python | 西安 | Python | 腾讯 | 雁塔区 | 电子城 | 互联网 | 10000人以上 | 本科 | 1-3年 | 已上市 | 定期体检,补充医疗保险,带薪年假,五险一金,免费班车,节日福利,年终奖,餐补... | 15-30 | 16 | 15 | 30 | 22.5 | 36.00 |
1630 | 1631 | 13401 | python | 西安 | python | 博彦科技 | 雁塔区 | 紫薇田园都市 | 计算机软件 | 1000-9999人 | 大专 | 1-3年 | 已上市 | 年终奖,节日福利,免费班车,定期体检,五险一金,带薪年假... | 11-16 | 12 | 11 | 16 | 13.5 | 16.20 |
1631 | 1632 | 13402 | python | 西安 | Python岗位: | 华为技术有限公司 | 雁塔区 | 高新软件园 | 计算机软件 | 10000人以上 | 本科 | 经验不限 | 不需要融资 | 员工旅游,五险一金,定期体检,年终奖,带薪年假,离职补偿,免费班车,节日福利,交通补助,加班... | 15-30 | 13 | 15 | 30 | 22.5 | 29.25 |
1632 | 1633 | 13403 | python | 西安 | python 后台开发工程师 | 豆芽网络 | 雁塔区 | 绿地世纪城 | 计算机软件 | 0-20人 | 大专 | 1-3年 | 未融资 | 五险一金,零食下午茶,定期体检,节日福利,带薪年假,员工旅游,年终奖... | 8-13 | 13 | 8 | 13 | 10.5 | 13.65 |
1633 | 1634 | 13404 | python | 西安 | Python(双休) | 柯莱特集团 | 雁塔区 | 高新软件园 | 计算机软件 | 1000-9999人 | 大专 | 1-3年 | 已上市 | 五险一金,节日福利,交通补助,带薪年假 | 11-20 | 12 | 11 | 20 | 15.5 | 18.60 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
5636 | 5637 | 17407 | java | 西安 | Java | 华为 | 雁塔区 | 绿地世纪城 | 计算机软件 | 10000人以上 | 本科 | 经验不限 | 不需要融资 | 零食下午茶,节日福利,加班补助,定期体检,年终奖,免费班车,补充医疗保险,交通补助,带薪年假... | 13-26 | 12 | 13 | 26 | 19.5 | 23.40 |
5637 | 5638 | 17408 | java | 西安 | Java | 华为 | 雁塔区 | 高新软件园 | 计算机软件 | 10000人以上 | 本科 | 1-3年 | 不需要融资 | 年终奖,带薪年假,交通补助,五险一金,零食下午茶,加班补助,定期体检,宵夜,补充医疗保险,节... | 16-24 | 16 | 16 | 24 | 20.0 | 32.00 |
5638 | 5639 | 17409 | java | 西安 | JAVA | 软通动力信息技术集团 | 雁塔区 | 高新软件园 | 计算机软件 | 10000人以上 | 本科 | 1-3年 | 已上市 | 员工旅游,年终奖,节日福利,餐补,加班补助,带薪年假,零食下午茶,交通补助,五险一金,定期体... | 9-14 | 12 | 9 | 14 | 11.5 | 13.80 |
5640 | 5641 | 17411 | java | 西安 | Java | 中软国际 | 雁塔区 | 高新软件园 | 计算机软件 | 10000人以上 | 本科 | 3-5年 | 已上市 | 加班补助,定期体检,餐补,免费班车,员工旅游,节日福利,带薪年假,零食下午茶,五险一金,年终... | 8-12 | 12 | 8 | 12 | 10.0 | 12.00 |
5641 | 5642 | 17412 | java | 西安 | Java | 华为技术有限公司 | 雁塔区 | 高新软件园 | 计算机软件 | 10000人以上 | 本科 | 1-3年 | 不需要融资 | 带薪年假,离职补偿,交通补助,加班补助,餐补,年终奖,员工旅游,补充医疗保险,五险一金,节日... | 12-24 | 12 | 12 | 24 | 18.0 | 21.60 |
431 rows × 20 columns
# 这个是统计频率的方法 因为加了参数 normalize = True 不加的话是统计频数 这个在pandas入门文档里讲到过
com_fre = xi_an['公司名称'].value_counts(normalize = True)
print(com_fre)
print(com_fre.sum())
华为 0.232019
中软国际 0.078886
华为技术有限公司 0.064965
腾讯 0.058005
易宝软件 0.044084
...
陕西世和 0.002320
美尚展示 0.002320
上海数巧 0.002320
大连斯锐信息技术公司 0.002320
德坤公司 0.002320
Name: 公司名称, Length: 120, dtype: float64
1.0
绘制区域占比饼图和词云图
因为饼状图不适宜展示太多的数据,我们只取排名前十的数据。剩下的我们以‘其他’表示 所以手动append()了一下
# 综合代码演示 把上面需要的也都复制下来了
import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
# 设置数据对齐显示
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 设置画布大小和分辨率
plt.figure(figsize=(18, 5),dpi=80)
df = pd.read_csv('BOSS直聘岗位数据.csv',skiprows=1)
df.dropna(axis=0, how='any', subset=['所在区域'], inplace=True)
df.dropna(axis=0, how='any', subset=['所在街道'], inplace=True)
xi_an = df.groupby(['城市','所在区域']).get_group(('西安','雁塔区'))
com_fre = xi_an['公司名称'].value_counts(normalize = True)
# 绘制饼状图 图一
plt.subplot(1, 2, 1)
data = com_fre[0:10]
sizes = data.values.tolist()
sizes.append(1-data.sum())
label = data.index.tolist()
label.append('其他')
print(label)
# 各区块的偏移半径
explode = (0.3, 0, 0.3, 0, 0, 0, 0, 0.3, 0, 0, 0)
plt.pie(sizes,labels=label,autopct='%1.1f%%',explode =explode)
plt.title("西安雁塔区公司分布占比图")
# 绘制词云图 图二
plt.subplot(1, 2, 2)
w = WordCloud(width=640,height=480,background_color='white',
font_path='simhei',mask=None,
stopwords=None,contour_color='gray',contour_width=1,
max_font_size=80, min_font_size=4,scale = 4
)
all_company_xi_an = dict(zip(com_fre.index,com_fre.values))
w.generate_from_frequencies(all_company_xi_an)
plt.imshow(w)
plt.title("西安雁塔区公司分布图")
plt.show()
['华为', '中软国际', '华为技术有限公司', '腾讯', '易宝软件', '软通动力信息技术集团', '软通动力', '西安华为', '阿里巴巴集团', '法本', '其他']