2020年广东广州深圳招聘职业python大数据分析

数据读取
 1 # encoding:utf-8
 2 #2020年广州深圳广东招聘信息分析
 3 import pandas as pd
 4 import numpy as np
 5 from pandas import DataFrame
 6 data = pd.read_csv(
 7     r"C:\Users\22392\PycharmProjects\数据分析\数据\zp_info.csv",encoding='utf-8',
 8                    engine='python')
 9 #输出数据信息
10 print(data.info())

运行结果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 28571 entries, 0 to 28570
Data columns (total 12 columns):
 #   Column      Non-Null Count  Dtype 
---  ------      --------------  ----- 
 0   position    28571 non-null  object
 1   region      28571 non-null  object
 2   experience  27983 non-null  object
 3   education   28559 non-null  object
 4   number      25781 non-null  object
 5   age         28570 non-null  object
 6   new_time    28570 non-null  object
 7   wage        28571 non-null  object
 8   company     28571 non-null  object
 9   trade       28570 non-null  object
 10  nature      28534 non-null  object
 11  scale       28568 non-null  object
dtypes: object(12)
memory usage: 2.6+ MB             

 打印列名以及相应的缺失值个数

1 for columname in data.columns:
2     if data[columname].count() != len(data):
3         loc = data[columname][data[columname].isnull().values==True].index.tolist()
4         print('列名:"{}", 有{}个缺失值'.format(columname,len(loc)))

 

运行结果:

列名:"experience", 有588个缺失值
列名:"education", 有12个缺失值
列名:"number", 有2790个缺失值
列名:"age", 有1个缺失值
列名:"new_time", 有1个缺失值
列名:"trade", 有1个缺失值
列名:"nature", 有37个缺失值
列名:"scale", 有3个缺失值

填充缺失值为“unknow”

 
data1=data.fillna("unknow")
#输出填充后的空值信息
print(data1.isnull().any())
#打印数据
print(data1)

 结果:

position      False
region        False
experience    False
education     False
number        False
age           False
new_time      False
wage          False
company       False
trade         False
nature        False
scale         False
dtype: bool
      position   region experience  ...         trade nature      scale
0       库房打包工人  深圳市/龙岗区       1年以下  ...      互联网/电子商务     民营      20人以下
1          生产工  广州市/白云区        无经验  ...  家具/家电/工艺品/玩具     民营      20人以下
2       收件数据专岗  深圳市/罗湖区        无经验  ...     金融(银行/保险)  股份制企业   100-499人
3      办公室客服文员  广州市/荔湾区         不限  ...         房地产开发     民营   100-499人
4        客服实习生  广州市/荔湾区         不限  ...         建筑与工程     民营   100-499人
...        ...      ...        ...  ...           ...    ...        ...
28566    算法工程师    广东-东莞     1年以上经验  ...      机械/设备/技工   民营企业  500-1000人
28567     行政主管    广东-东莞       不限经验  ...        建筑/房地产   民营企业    50-200人
28568   人事行政主管    广东-东莞     5年以上经验  ...      机械/设备/技工   民营企业    50-200人
28569     仓储主管    广东-东莞     1年以上经验  ...      机械/设备/技工   民营企业    1000人以上
28570     审计专员    广东-东莞     1年以上经验  ...      机械/设备/技工   民营企业  500-1000人

[28571 rows x 12 columns]

Process finished with exit code 0

 公司招聘的职业的需求排名

代码:

job0=(data1.loc[:,["trade"]]).value_counts()
print(job0.head(20))

 

运行结果:前20名

C:\Users\22392\PycharmProjects\数据分析\venv\Scripts\python.exe C:/Users/22392/PycharmProjects/数据分析/职位2.py
trade       
互联网/电子商务        4116
金融(银行/保险)       2081
其他行业            1833
医疗/美容/保健/卫生     1595
建筑/房地产/物业/装潢    1562
物业管理/商业中心       1399
餐饮/娱乐/休闲        1370
中介服务/家政服务       1036
教育/培训            894
教育/培训/学术/科研      875
交通/运输/物流         703
汽车/摩托车/零配件       551
批发/零售            546
批发零售             539
专业服务/财会/法律       522
电子/半导体/集成电路      516
机械/设备/技工         503
金融(投资/证券         449
服装/纺织/皮革         447
消费品(食/饮/烟酒)      438
dtype: int64

 图形化柱状图 前15名

import matplotlib.pyplot as plt
from matplotlib import font_manager
#解决中文报错
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
#横坐标
lstx=[]
#纵坐标
lsty=[]
for x,y in zip(job0[0:15].index,job0[0:15]):
    lstx.append(((str(x)[2:-3]).split("/"))[0])
    lsty.append(y)
plt.figure(figsize=(20,10),dpi = 150)
my_font = font_manager.FontProperties(fname=r'C:\Windows\Fonts\STKAITI.TTF',size =10)
plt.bar(lstx,lsty,width=0.5)
plt.xticks(range(len(lstx)),lstx,fontproperties=my_font)
for a,b in zip(lstx,lsty):   #柱子上的数字显示
    plt.text(a,b,'%.0f'%b,ha='center',va='bottom',fontsize=12)
plt.show()

 

 图形化结果

2020年广东广州深圳招聘职业python大数据分析

 

加权(人数*职业)公司招聘职业需求

数据清洗,整理公司招聘职位类别 以及人数 写入job.csv文件中

job=(data1.loc[:,["trade","number"]]).value_counts()

import csv
f = open('job.csv','w',encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(["trade","number","all_number"])
for (x,y) in zip((job.index)[:50],job[:50]):
    lst=[]
    lst.append(x[0])
    #对需求人数x[1]做规范化处理,unkonw=1,若干人=2 ,以及平均人数,以此来加权
    lst2=[]
    lst2=re.split("人|招聘|数|-|:",str(x[1]))
    #去除空值
    while '' in lst2:
        lst2.remove('')
    z = lst2[0]
    if lst2[0] == 'unknow':
        z = "1"
    elif lst2[0]=='若干':
        z = "2"
    elif len(lst2)==2:
        print(lst2)
        z = (int(lst2[0])+int(lst2[1]))//2
    lst.append(z)
    lst.append(str(y))
    csv_writer.writerow(lst)
f.close()

 

 job.csv中数据

2020年广东广州深圳招聘职业python大数据分析

 

 


jobdata = pd.read_csv(
r"job.csv",encoding='utf-8',
engine='python')

print(jobdata.info())

 job.csv中的数据信息

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 50 entries, 0 to 49
Data columns (total 3 columns):
 #   Column      Non-Null Count  Dtype 
---  ------      --------------  ----- 
 0   trade       50 non-null     object
 1   number      50 non-null     int64 
 2   all_number  50 non-null     int64 
dtypes: int64(2), object(1)
memory usage: 1.3+ KB

 2020年广东广州深圳招聘职业python大数据分析

 

上一篇:mysql内连接(inner join)


下一篇:成功解决subprocess.CalledProcessError: Command ‘[‘dot‘, ‘-Tpdf‘, ‘-O‘, ‘Digraph.gv‘]‘ returned non-zero