ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-06-18 23:36:02  阅读:169  来源: 互联网

标签:数据分析 ... non csv False python object 2020 null


数据读取
 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()

 

 图形化结果

 

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

数据清洗,整理公司招聘职位类别 以及人数 写入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中数据

 

 


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

 

 

标签:数据分析,...,non,csv,False,python,object,2020,null
来源: https://www.cnblogs.com/aoao2239/p/14897953.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有