2018年7月13日金曜日

ハローワークの求人情報を見てみる。賃金分布、地域、業種(python,pandas,matplotlib)

前回、ハローワークインターネットサービスから求人一覧を取得しました。

ハローワークインターネットサービスから求人情報を取得する
http://eneprog.blogspot.com/2018/07/pythonpandas.html

今回はこのデータの中身を見てみます。

・インポートとデータ読み込み
import pandas as pd
from time import sleep

import matplotlib
import matplotlib.pyplot as plt

tables=pd.read_csv("ehime_job.csv",encoding="CP932")
tables.head()
Unnamed: 0NO求人番号職種雇用形態/賃金(税込)就業時間/休日/週休二日産業沿線/就業場所受理日
0NEW!◎113040- 82018581ルームアドバイザー職/新居浜駅前店正社員/182,000円~182,000円変形 1年単位1)10:00~19:00/他/その他不動産業,物品賃貸業のうち不動産代理業・仲介業愛媛県新居浜市平成30年7月9日
1NEW!◎213170- 30358781施工管理/松山市(要普免) 【急募】正社員/230,000円~400,000円1)08:00~17:00/土日/毎週不動産業,物品賃貸業のうち建物売買業,土地売買業愛媛県松山市平成30年7月9日
2NEW!◎321010- 26058881メディカルスタッフ(たんぽぽ薬局今治喜田村店)正社員/167,800円~200,000円変形 1ヶ月単位1)08:30~17:302)08:30~13:303)09:00~18:0...卸売業・小売業のうち医薬品・化粧品小売業愛媛県今治市平成30年7月9日
3NEW!◎427020- 46421181フィールドサービス(松山市)**急募**正社員/150,000円~225,000円変形 1年単位1)08:35~18:30/他/毎週卸売業・小売業のうち各種商品卸売業愛媛県松山市平成30年7月9日
4NEW!◎527020- 46422081営業職(プレゼン型)松山市★東証一部上場★メーカー正社員/150,000円~225,000円変形 1年単位1)08:35~18:30/土日祝他/毎週卸売業・小売業のうち各種商品卸売業愛媛県松山市平成30年7月9日

愛媛県のフルタイム正社員の求人情報、7575件です。

「雇用形態/賃金(税込)」と「就業時間/休日/週休二日」は複数の情報が一つのカラムに入っているので分割し、データを整理します。

・「雇用形態/賃金(税込)」の整理
table2=(tables["雇用形態/賃金(税込)"]
        .str.replace("円~","/")
        .str.replace("円","")
        .str.replace(",","")
        .str.split("/",expand=True)
       )

able2.columns=["雇用形態","賃金(最低)","賃金(最大)"]
table2=table2[["賃金(最低)","賃金(最大)"]].astype(int)
table2.head() 
賃金(最低)賃金(最大)
0182000182000
1230000400000
2167800200000
3150000225000
4150000225000


「雇用形態/賃金(税込)」列には「正社員/182,000円~182,000円」というように"雇用形態","賃金(最低)","賃金(最大)"の3つの情報が入っています。区切り文字を"/"に統一し、不要な文字("円",コンマ)を削除して、splitで列を分割します。

その後、列名をつけ、「賃金(最低)」「賃金(最大)」を数値に変換しました。

・「就業時間/休日/週休二日」の分割
table3=tables["就業時間/休日/週休二日"].str.split("/",expand=True)
table3.columns=["就業時間","休日","週休二日"]
table3.head()
就業時間休日週休二日
0変形 1年単位1)10:00~19:00その他
11)08:00~17:00土日毎週
2変形 1ヶ月単位1)08:30~17:302)08:30~13:303)09:00~18:00日祝他毎週
3変形 1年単位1)08:35~18:30毎週
4変形 1年単位1)08:35~18:30土日祝他毎週

同様に「就業時間/休日/週休二日」も3つに分割します。

・データ結合
job_table=(pd.concat([tables,table2,table3],axis=1)
           .drop(["雇用形態/賃金(税込)","就業時間/休日/週休二日"],axis=1)
          )
job_table.head()
Unnamed: 0NO求人番号職種産業沿線/就業場所受理日雇用形態賃金(最低)賃金(最大)就業時間休日週休二日
0NEW!◎113040- 82018581ルームアドバイザー職/新居浜駅前店不動産業,物品賃貸業のうち不動産代理業・仲介業愛媛県新居浜市平成30年7月9日正社員182000182000変形 1年単位1)10:00~19:00その他
1NEW!◎213170- 30358781施工管理/松山市(要普免) 【急募】不動産業,物品賃貸業のうち建物売買業,土地売買業愛媛県松山市平成30年7月9日正社員2300004000001)08:00~17:00土日毎週
2NEW!◎321010- 26058881メディカルスタッフ(たんぽぽ薬局今治喜田村店)卸売業・小売業のうち医薬品・化粧品小売業愛媛県今治市平成30年7月9日正社員167800200000変形 1ヶ月単位1)08:30~17:302)08:30~13:303)09:00~18:00日祝他毎週
3NEW!◎427020- 46421181フィールドサービス(松山市)**急募**卸売業・小売業のうち各種商品卸売業愛媛県松山市平成30年7月9日正社員150000225000変形 1年単位1)08:35~18:30毎週
4NEW!◎527020- 46422081営業職(プレゼン型)松山市★東証一部上場★メーカー卸売業・小売業のうち各種商品卸売業愛媛県松山市平成30年7月9日正社員150000225000変形 1年単位1)08:35~18:30土日祝他毎週

データ結合し、表の完成です。

ここから中身を見てみます。

・求人の多い地域
job_area=job_table.groupby("沿線/就業場所")[["沿線/就業場所"]].count().sort_values(by="沿線/就業場所", ascending=False)
job_area[:10] 
沿線/就業場所
沿線/就業場所
愛媛県松山市2853
愛媛県今治市894
愛媛県新居浜市734
愛媛県西条市620
愛媛県四国中央市612
愛媛県宇和島市321
愛媛県大洲市240
愛媛県八幡浜市198
愛媛県伊予郡松前町150
愛媛県東温市150

groupbyで「沿線/就業場所」をグループ化し、データ数を数えました。

松山市の求人数がダントツで多いです。続いて今治市、西条市、新居浜市となっています。

・求人の多い業種
job_table.groupby("産業")[["産業"]].count().sort_values(by="産業", ascending=False)[:10]
産業
産業
医療,福祉のうち老人福祉・介護事業1025
医療,福祉のうち病院478
運輸業,郵便業のうち一般貨物自動車運送業319
建設業のうち一般土木建築工事業246
製造業のうち船舶製造・修理業,舶用機関製造業229
医療,福祉のうち一般診療所207
建設業のうち土木工事業(舗装工事業を除く)143
卸売業・小売業のうち自動車小売業108
卸売業・小売業のうち医薬品・化粧品小売業108
医療,福祉のうち歯科診療所107

産業別では、医療、介護系が最も多く、運輸、建設・製造と続いています。

・賃金の統計量
table2[["賃金(最低)","賃金(最大)"]].describe()
賃金(最低)賃金(最大)
count7575.0000007575.000000
mean167828.605545224215.472871
std35528.51465972106.315667
min45000.00000050000.000000
25%147000.000000173000.000000
50%162500.000000210000.000000
75%184817.000000260000.000000
max416667.000000791666.000000

.describe()で賃金情報の統計量を見てみます。

賃金(最低)の平均は167,828円、中央値162,500円で、賃金(最大)では平均224,215円、中央値210000と平均値と中央値の差は小さくなっています。

・賃金の分布
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams["font.size"] = 16

table2.plot(y=["賃金(最低)","賃金(最大)"],bins=20,alpha=0.5,range=(0,600000),kind="hist",figsize=(10,5))


matplotlibで日本語を表示させると文字化けするので、plt.rcParams['font.family']でフォントを指定しています。alpha=0.5は色の透過度の指定です。

赤色、賃金(最低)では16万円に大きな山となり分布範囲は小さくなっています。このくらいの求人が多いということですね。青色、賃金(最高)の方は最頻値が20万円程度で最低よりも分布が広く、やや右に裾の長いグラフになりました。

参考:
ハローワークインターネットサービス
https://www.hellowork.go.jp/index.html

プログラミング学習:pandasでweb上の表を取得する。
https://eneprog.blogspot.com/2018/04/pandaswebpython.html
ハローワークインターネットサービスから求人情報を取得する
http://eneprog.blogspot.com/2018/07/pythonpandas.html

0 件のコメント:

コメントを投稿

//SyntaxHighlighter CDNより https://cdnjs.com/libraries/SyntaxHighlighter // 対応言語