【日常点滴015】python中学完pandas后的代码练习 附源数据文件

上一篇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)
011770岗位城市岗位具体名称公司名称所在区域所在街道公司类型公司规模学历要求工作经验融资情况福利待遇薪资(K)发放月数最低薪资最高薪资平均薪资平均年薪(万)
4609461016380java深圳Java高级架构师(专家级)腾讯南山区科技园互联网10000人以上本科5-10年已上市免费班车,节日福利,五险一金,定期体检,补充医疗保险,年终奖,带薪年假,餐补...150-20016150200175.0280.0
4584458516355java深圳Java中间件开发工程师货拉拉科技福田区梅林互联网1000-9999人本科5-10年D轮及以上年终奖,交通补助,零食下午茶,员工旅游,带薪年假,五险一金,节日福利...60-9015609075.0112.5
4613461416384java深圳Java腾讯南山区科技园互联网10000人以上本科经验不限已上市五险一金,定期体检,带薪年假,免费班车,年终奖,餐补,节日福利,补充医疗保险...40-7018407055.099.0
4551455216322java深圳Java腾讯南山区科技园互联网10000人以上本科经验不限已上市免费班车,节日福利,年终奖,补充医疗保险,带薪年假,五险一金,定期体检,餐补...40-7018407055.099.0
4647464816418java深圳Java顺丰科技南山区科技园互联网1000-9999人本科5-10年不需要融资餐补,免费班车,带薪年假,包吃,交通补助,股票期权,定期体检,五险一金,年终奖,节日福利,员...50-7016507060.096.0
4604460516375java深圳推荐系统java架构师腾讯南山区科技园互联网10000人以上本科5-10年已上市年终奖,五险一金,定期体检,免费班车,节日福利,带薪年假,补充医疗保险,餐补...50-7016507060.096.0
4435443616206java广州java 高级技术专家蚂蚁金服越秀区中华广场互联网10000人以上本科5-10年不需要融资节日福利,免费班车,补充医疗保险,五险一金,年终奖,定期体检,包吃,带薪年假,员工旅游,餐补...60-9012609075.090.0
4697469816468java深圳Java 架构师OPPO南山区前海互联网10000人以上本科5-10年不需要融资零食下午茶,股票期权,年终奖,带薪年假,定期体检,五险一金...60-9012609075.090.0
4419442016190java广州Java资深开发工程师 DMP广告唯品会海珠区琶洲互联网10000人以上本科10年以上已上市补充医疗保险,股票期权,节日福利,包吃,免费班车,住房补贴,员工旅游,交通补助,通讯补贴,定...50-8013508065.084.5
4565456616336java深圳JAVA阿里巴巴集团南山区科技园互联网10000人以上大专3-5年已上市五险一金,免费班车,定期体检,补充医疗保险,年终奖,交通补助,股票期权,节日福利,餐补,加班...25-4524254535.084.0
35635712127python上海专有云交付平台高级研发工程师-Python腾讯徐汇区漕河泾互联网10000人以上本科5-10年已上市带薪年假,年终奖,五险一金,节日福利,餐补,定期体检,补充医疗保险,免费班车...30-6018306045.081.0
25825912029python北京专有云交付平台高级研发工程师-Python腾讯海淀区双榆树互联网10000人以上本科5-10年已上市五险一金,餐补,节日福利,补充医疗保险,年终奖,带薪年假,免费班车,定期体检...30-6018306045.081.0
4627462816398java深圳java高级研发工程师-深圳腾讯南山区科技园互联网10000人以上本科3-5年已上市带薪年假,节日福利,年终奖,免费班车,定期体检,餐补,补充医疗保险,五险一金...30-6018306045.081.0
4634463516405java深圳Java高级工程师、java技术专家、架构师阿里巴巴集团南山区海岸城互联网10000人以上本科经验不限已上市定期体检,交通补助,带薪年假,年终奖,节日福利,补充医疗保险,免费班车,股票期权,餐补,加班...30-6018306045.081.0
4677467816448java深圳Java高级开发工程师OPPO南山区后海互联网10000人以上本科5-10年不需要融资股票期权,零食下午茶,五险一金,年终奖,带薪年假,定期体检...30-6018306045.081.0
5707570817478java苏州java高级研发工程师/技术专家蚂蚁金服虎丘区科技城互联网10000人以上学历不限3-5年不需要融资免费班车,定期体检,包吃,五险一金,年终奖,节日福利,餐补,股票期权,补充医疗保险,员工旅游...30-6018306045.081.0
4616461716387java深圳Java高级技术专家阿里巴巴集团NaNNaN互联网10000人以上本科10年以上已上市免费班车,餐补,带薪年假,年终奖,定期体检,五险一金,补充医疗保险,股票期权,交通补助,节日...35-6516356550.080.0
4623462416394java深圳架构师-JAVA货拉拉科技福田区梅林互联网1000-9999人本科5-10年D轮及以上带薪年假,节日福利,交通补助,年终奖,五险一金,零食下午茶,员工旅游...40-7014407055.077.0
4528452916299java深圳Java架构师货拉拉科技福田区梅林互联网1000-9999人本科5-10年D轮及以上节日福利,五险一金,年终奖,员工旅游,零食下午茶,带薪年假,交通补助...40-7014407055.077.0
4669467016440java深圳Java架构师货拉拉科技福田区梅林互联网1000-9999人本科5-10年D轮及以上节日福利,交通补助,零食下午茶,五险一金,带薪年假,年终奖,员工旅游...40-7014407055.077.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
011770岗位城市岗位具体名称公司名称所在区域所在街道公司类型公司规模学历要求工作经验融资情况福利待遇薪资(K)发放月数
0111771python北京Python 工程师爱奇艺海淀区中关村互联网1000-9999人本科经验不限已上市交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假...20-4012薪
1211772python北京Python快手海淀区上地社交网络10000人以上本科1-3年已上市全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...25-5012薪
2311773python北京初中级Python工程师智慧星光NaNNaN互联网500-999人本科1-3年未融资年终奖,通讯补贴,员工旅游,五险一金,定期体检,带薪年假,股票期权,交通补助,加班补助...5-1012薪
3411774python北京初中级python工程师软通动力大兴区亦庄计算机软件10000人以上大专1-3年已上市五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...9-1212薪
4511775python北京Python爱奇艺海淀区中关村互联网1000-9999人本科1-3年已上市带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补...20-4012薪
...................................................
7593759419364java重庆Java高级开发工程师中林广生九龙坡区石桥铺计算机软件20-99人本科1-3年未融资年终奖,加班补助,五险一金,定期体检10-1112薪
7594759519365java重庆Java创易康软件NaNNaN计算机软件1000-9999人本科1-3年已上市带薪年假,餐补,股票期权,节日福利,五险一金,通讯补贴,年终奖,定期体检,交通补助...5-912薪
7595759619366java重庆Java非鱼计划NaNNaN互联网0-20人本科5-10年未融资加班补助,全勤奖,五险一金10-1112薪
7596759719367java重庆Java重庆新致金服渝北区新牌坊计算机软件1000-9999人本科3-5年未融资加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖...9-1413薪
7597759819368java重庆JAVA项目经理德帆科技南岸区南坪计算机软件100-499人大专5-10年不需要融资带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金...12-1812薪

7598 rows × 16 columns

删除区域中的空数据行

df.dropna(axis=0, how='any', subset=['所在区域'], inplace=True)
df.dropna(axis=0, how='any', subset=['所在街道'], inplace=True)
df

011770岗位城市岗位具体名称公司名称所在区域所在街道公司类型公司规模学历要求工作经验融资情况福利待遇薪资(K)发放月数
0111771python北京Python 工程师爱奇艺海淀区中关村互联网1000-9999人本科经验不限已上市交通补助,加班补助,定期体检,五险一金,零食下午茶,补充医疗保险,餐补,带薪年假...20-4012薪
1211772python北京Python快手海淀区上地社交网络10000人以上本科1-3年已上市全勤奖,节日福利,员工旅游,包吃,加班补助,交通补助,年终奖,零食下午茶,餐补,带薪年假,定...25-5012薪
3411774python北京初中级python工程师软通动力大兴区亦庄计算机软件10000人以上大专1-3年已上市五险一金,节日福利,员工旅游,定期体检,团建活动,带薪年假,零食下午茶,加班补助,免费班车,...9-1212薪
4511775python北京Python爱奇艺海淀区中关村互联网1000-9999人本科1-3年已上市带薪年假,加班补助,五险一金,零食下午茶,定期体检,交通补助,补充医疗保险,餐补...20-4012薪
6711777python北京Python腾讯昌平区南邵互联网10000人以上本科3-5年已上市带薪年假,餐补,节日福利,五险一金,年终奖,定期体检,补充医疗保险,免费班车...19-2512薪
...................................................
7591759219362java重庆Java中高级工程师拓普森渝北区汽博中心电子商务20-99人大专5-10年未融资6险1金,节日福利,零食下午茶,带薪年假,员工旅游,全勤奖,定期体检,餐补,交通补助...12-1712薪
7592759319363java重庆JAVA重庆新致金服渝北区新牌坊计算机软件1000-9999人大专1-3年未融资加班补助,股票期权,带薪年假,年终奖,五险一金,定期体检,节日福利,员工旅游...6-813薪
7593759419364java重庆Java高级开发工程师中林广生九龙坡区石桥铺计算机软件20-99人本科1-3年未融资年终奖,加班补助,五险一金,定期体检10-1112薪
7596759719367java重庆Java重庆新致金服渝北区新牌坊计算机软件1000-9999人本科3-5年未融资加班补助,员工旅游,定期体检,股票期权,五险一金,带薪年假,节日福利,年终奖...9-1413薪
7597759819368java重庆JAVA项目经理德帆科技南岸区南坪计算机软件100-499人大专5-10年不需要融资带薪年假,员工旅游,免费班车,节日福利,加班补助,年终奖,五险一金...12-1812薪

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
011770岗位城市岗位具体名称公司名称所在区域所在街道公司类型公司规模学历要求工作经验融资情况福利待遇薪资(K)发放月数最低薪资最高薪资平均薪资平均年薪(万)
1629163013400python西安Python腾讯雁塔区电子城互联网10000人以上本科1-3年已上市定期体检,补充医疗保险,带薪年假,五险一金,免费班车,节日福利,年终奖,餐补...15-3016153022.536.00
1630163113401python西安python博彦科技雁塔区紫薇田园都市计算机软件1000-9999人大专1-3年已上市年终奖,节日福利,免费班车,定期体检,五险一金,带薪年假...11-1612111613.516.20
1631163213402python西安Python岗位:华为技术有限公司雁塔区高新软件园计算机软件10000人以上本科经验不限不需要融资员工旅游,五险一金,定期体检,年终奖,带薪年假,离职补偿,免费班车,节日福利,交通补助,加班...15-3013153022.529.25
1632163313403python西安python 后台开发工程师豆芽网络雁塔区绿地世纪城计算机软件0-20人大专1-3年未融资五险一金,零食下午茶,定期体检,节日福利,带薪年假,员工旅游,年终奖...8-131381310.513.65
1633163413404python西安Python(双休)柯莱特集团雁塔区高新软件园计算机软件1000-9999人大专1-3年已上市五险一金,节日福利,交通补助,带薪年假11-2012112015.518.60
...............................................................
5636563717407java西安Java华为雁塔区绿地世纪城计算机软件10000人以上本科经验不限不需要融资零食下午茶,节日福利,加班补助,定期体检,年终奖,免费班车,补充医疗保险,交通补助,带薪年假...13-2612132619.523.40
5637563817408java西安Java华为雁塔区高新软件园计算机软件10000人以上本科1-3年不需要融资年终奖,带薪年假,交通补助,五险一金,零食下午茶,加班补助,定期体检,宵夜,补充医疗保险,节...16-2416162420.032.00
5638563917409java西安JAVA软通动力信息技术集团雁塔区高新软件园计算机软件10000人以上本科1-3年已上市员工旅游,年终奖,节日福利,餐补,加班补助,带薪年假,零食下午茶,交通补助,五险一金,定期体...9-141291411.513.80
5640564117411java西安Java中软国际雁塔区高新软件园计算机软件10000人以上本科3-5年已上市加班补助,定期体检,餐补,免费班车,员工旅游,节日福利,带薪年假,零食下午茶,五险一金,年终...8-121281210.012.00
5641564217412java西安Java华为技术有限公司雁塔区高新软件园计算机软件10000人以上本科1-3年不需要融资带薪年假,离职补偿,交通补助,加班补助,餐补,年终奖,员工旅游,补充医疗保险,五险一金,节日...12-2412122418.021.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()

['华为', '中软国际', '华为技术有限公司', '腾讯', '易宝软件', '软通动力信息技术集团', '软通动力', '西安华为', '阿里巴巴集团', '法本', '其他']

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值