[PYTHON] Was ich bei der Analyse der Daten des Ingenieurmarktes gesehen habe

Einführung

Python Adventskalender 2019 Tag 25: christus_tree :.

Am selben 25. Tag des letztjährigen Python-Adventskalenders 2018 schrieb ich einen Artikel mit dem Titel Statistiken, die in einer zu Hause erstellten Python- und Datenanalyseumgebung gelernt wurden. In dem Artikel haben wir die Daten des höchsten Jahreseinkommens erhalten, die aus dem 15. Entwurf der Teilnahmebenutzerrangliste von Job Change Draft stammen, und eine einfache Datenanalyse durchgeführt.

Dieser Artikel fasst die Ergebnisse einer Datenanalyse des Ingenieurmarkts unter Verwendung von Daten aus dem 22. Entwurf der teilnehmenden Benutzerrankings zusammen.

Es ist ungefähr um diese Zeit, als ich das Ende des Jahres fühle, aber werfen wir einen Blick auf den aktuellen Stand des Ingenieurmarktes bis 2020.

Schaben

Der Code, den ich letztes Jahr geschrieben habe, hat nur die höchste Menge erhalten, daher habe ich ihn so geändert, dass alle Daten aus den Benutzerrankingdaten entfernt werden.

Führen Sie zunächst das folgende Programm aus, um die für die Datenanalyse erforderlichen Daten zu erfassen (*). Darüber hinaus wird die Umgebung dieses Artikels von Razupai betrieben.

** (*) Überprüfen Sie beim Scraping die Nutzungsbedingungen des Zieldienstes und berücksichtigen Sie die Belastung auf der Dienstseite. ** ** **

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

#Importieren Sie die zum Scraping erforderlichen Module
import csv
import sys
sys.path.append('/home/pi/.local/lib/python3.5/site-packages/')
import time
import traceback

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException

#Optionen für die Verwendung von Headless Chrome
options = webdriver.chrome.options.Options()
options.add_argument('--headless')

#Treibereinstellungen
browser = webdriver.Chrome(executable_path="/usr/lib/chromium-browser/chromedriver", chrome_options=options)

#Anmeldeinformationen
USER = “user”
PASS = “pass”

#Anmeldebildschirm anzeigen
url_login = "https://job-draft.jp/sign_in"
browser.get(url_login)
time.sleep(1)
print("Ich habe die Anmeldeseite besucht") 

#Geben Sie Ihre E-Mail-Adresse und Ihr Passwort in das Formular ein
e = browser.find_element_by_id("user_email")
e.clear()
e.find_element_by_id("user_email").send_keys(USER)

e = browser.find_element_by_id("user_password")
e.clear()
e.find_element_by_id("user_password").send_keys(PASS)

time.sleep(1)

#Formular abschicken
e.find_element_by_xpath("//*[@id=\"new_user\"]/div[4]").click()
print("Sie sind jetzt angemeldet")

#Funktion
list = []
dict = {}
page = ""
last = 50

def get_user_data():
    url = "https://job-draft.jp/festivals/22/users?page="
    url = url+str(page)
    browser.get(url)
    count = 12
    if page == 49:
        count = 8
    num = 2
    while num < count:
        try:
            user = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-3 > div:nth-child(2) > a > span")
            age = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-3 > div:nth-child(3) > span")
            name = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-9 > div.row > div.col-xs-4.col-sm-3.col-md-3.col-lg-3 > span.f-w-bold.u-font-ml")
            max_amount = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-9 > div.row > div:nth-child(2) > span.f-w-bold.u-font-ml")
            cum_avg = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-9 > div.row > div:nth-child(3) > span.f-w-bold.u-font-ml")
            ambition = browser.find_elements_by_css_selector("#page-wrapper > div.wrapper-content > div > div > div.col-xs-12.col-sm-12.col-md-8.col-lg-8 > div.ibox > div > div > div:nth-child("+(str(num))+") > div > div.col-xs-9 > div.u-m-t-5 > div:nth-child(1) > span.f-w-bold.u-font-mm")
        except NoSuchElementException:
            print("Es gab kein Element")
            sys.exit(1)
        for user, age, name, max_amount, cum_avg, ambition in zip(user, age, name, max_amount, cum_avg, ambition):
            user = user.text
            age = age.text
            name = name.text
            max_amount = max_amount.text
            max_amount = max_amount.replace('Zehntausend Yen', '')
            cum_avg = cum_avg.text
            cum_avg = cum_avg.replace('Zehntausend Yen', '')
            ambition = ambition.text
            print(user)
            print(age)
            print(name)
            print(max_amount)
            print(cum_avg)
            print(ambition)
            dict = {"user": user, "age": age, "name": name, "max_amount": max_amount, "cum_avg": cum_avg, "ambition": ambition }
            list.append(dict)
            with open('./user_ranking.csv', 'a') as f:
                writer = csv.writer(f)
                writer.writerow(dict.values())
            num += 1

def main():
    print("Starten Sie das Daten-Scraping")
    global page
    global last
    try:
        if not page:
            get_user_data()
            page = 2
            time.sleep(3)
        #Schleife zur letzten Seite
        while page < last:
            get_user_data()
            page += 1
            time.sleep(3)

    except Exception as e:
         traceback.print_exc()
         sys.exit(99)
    #Beenden Sie den Treiber und schließen Sie alle zugehörigen Fenster
    browser.quit()
    print("Daten-Scraping erfolgreich abgeschlossen")

#wird bearbeitet
if __name__ == '__main__':
    main()

Vorverarbeitung

Lesen Sie die CSV-Datei, die Sie durch Ausführen des obigen Programms von Jupyter Notebook erhalten haben. Wenn Sie in Pandas kein Argument festlegen, wird die erste Zeile als Kopfzeile erkannt. Die erfassten Daten haben keinen Header. Wenn Sie "header = None" angeben, wird der Header automatisch nach Nummer hinzugefügt. Geben Sie den Header jedoch zum besseren Verständnis an.

import numpy as np
import pandas as pd
#CSV-Datei lesen
df = pd.read_csv("/tmp/user_ranking.csv", names=("Alter", "Höchstbetrag", "Nutzername", "Anzahl der Nominierungen", "Ambition", "Kumulativen Durchschnitt"))

Überprüfen Sie den Anfang des Datenrahmens und stellen Sie sicher, dass er geladen ist.

df.head()

スクリーンショット 2019-12-21 11.38.09.png

Da die gescrapten Daten als Diktat gespeichert werden, sind die Schlüssel nicht in Ordnung. Es ist etwas schwer zu erkennen, daher werde ich die Schlüssel neu anordnen, damit sie mit der Website übereinstimmen.

#Sortieren
df = df.loc[:, ["Nutzername","Alter",  "Anzahl der Nominierungen", "Höchstbetrag", "Kumulativen Durchschnitt", "Ambition"]]

Es wurde neu angeordnet, um die Sicht zu erleichtern. Jetzt bist du bereit.

スクリーンショット 2019-12-21 11.42.47.png

Datenanalyse

Die Grundidee der Statistik lautet wie folgt.

Statistiken

Der 22. Entwurf wurde von 486 Personen besucht. Davon wurden 320 nominiert und 166 nicht. Wie ich im letztjährigen Artikel geschrieben habe, ändert sich der Durchschnittswert abhängig davon, ob "kein Termin" enthalten ist oder nicht.

Da es den Anschein hat, dass das in den Angebotsergebnissen angegebene durchschnittliche Jahresgehalt von denjenigen berechnet wird, die "keine Ernennung" ausschließen, werden wir die Analyse anhand der Daten ohne "keine Ernennung" fortsetzen.

Entfernen Sie nicht numerische Spalten aus dem Datenrahmen für Statistiken.

#Anzahl anderer Nominierungen als 0
df_nominated = df[df['Anzahl der Nominierungen'] != 0]
#Nicht numerischen Wert löschen
df_nominated = df_nominated.drop(['Alter', 'Nutzername', 'Ambition'], axis=1)

Stellen Sie sicher, dass es sich nur um eine Nummer handelt.

df_nominated.head()

スクリーンショット 2019-12-21 11.47.14.png

Überprüfen Sie als Nächstes den Datentyp. Sie können sehen, dass der maximale Betrag und der kumulative Durchschnitt ** Objekt ** sind.

#Überprüfen Sie den Datentyp
df_nominated.dtypes

スクリーンショット 2019-12-21 11.51.36.png

Da die Statistik nicht bestätigt werden kann, ändern Sie sie in den Typ int. Wechseln Sie entsprechend dem Datentyp der Anzahl der Nominierungen zum Typ int64.

#Datentypkonvertierung
df_nominated.loc[:, "Höchstbetrag"] = df_nominated.loc[:, "Höchstbetrag"].astype(np.int64)
df_nominated.loc[:, "Kumulativen Durchschnitt"] = df_nominated.loc[:, "Kumulativen Durchschnitt"].astype(np.int64)

スクリーンショット 2019-12-21 11.55.39.png

Nachdem der Datentyp int64 ist, überprüfen Sie die Statistiken. Der durchschnittliche Höchstbetrag beträgt ** 6,7 Millionen Yen ** und die Standardabweichung beträgt ** 1,2 Millionen Yen **. Der Markt bewegt sich von 5,5 Millionen Yen auf 7,9 Millionen Yen.

#Statistiken anzeigen
df_nominated.describe()

スクリーンショット 2019-12-21 11.58.57.png

Als nächstes überprüfen wir den Korrelationskoeffizienten. Wie Sie sehen können, besteht eine starke positive Korrelation zwischen dem Höchstbetrag und dem kumulierten Durchschnitt.

#Korrelationskoeffizienten anzeigen
df_nominated.corr()

スクリーンショット 2019-12-21 12.01.37.png

Überprüfen Sie die Beziehung der Daten für jede Spalte zur Streudiagrammmatrix. Die Größe des Diagramms kann mit "figsize" geändert werden. Die Einheit ist Zoll.

#Streudiagrammmatrix anzeigen
%matplotlib inline
from pandas.plotting import scatter_matrix
_ = scatter_matrix(df_nominated, figsize=(8,6))

スクリーンショット 2019-12-21 12.03.24.png

Histogramm

Vergleichen wir die maximale Menge im Histogramm. Extrahieren Sie die maximale Menge aus dem Datenrahmen.

#In aufsteigender Reihenfolge sortieren
df_aomount = df_nominated.sort_values(by="Höchstbetrag")
#Extrahieren Sie die höchste Menge aus dem Datenrahmen und fügen Sie sie der Liste hinzu
amount_list = []
for a in df_aomount["Höchstbetrag"]:
    amount_list.append(a)

スクリーンショット 2019-12-21 12.10.40.png

Sie können sehen, dass es viele im Bereich von 6 Millionen Yen gibt.

#Anzeige als Histogramm
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10))
plt.hist(amount_list, rwidth=10, bins=40)
plt.xlabel('Maximum amount')
plt.ylabel('Number of people')
plt.show()

スクリーンショット 2019-12-21 12.11.13.png

Histogramm (e)

Überprüfen Sie das Histogramm für jede Altersgruppe separat.

Bereiten Sie auch die Daten aus dem Datenrahmen vor.

import re
#In aufsteigender Reihenfolge sortieren
df_age = df.sort_values(by="Höchstbetrag")
df_age = df_age[df_age['Anzahl der Nominierungen'] != 0]

s10_list = []
s20_list = []
s30_list = []
s40_list = []
s50_list = []
s60_list = []

#Nach Alter aus dem Datenrahmen extrahieren und zur Liste hinzufügen
for age, amount in zip(df_age["Alter"], df_age["Höchstbetrag"]):
    if type(amount) is  str:
        amount = np.int64(amount)
    if re.match('10er', age):
        s10_list.append(amount)
    elif re.match('20er Jahre', age):
        s20_list.append(amount)
    elif re.match('30er Jahre', age):
        s30_list.append(amount)
    elif re.match('Vierziger Jahre', age):
        s40_list.append(amount)
    elif re.match('50er Jahre', age):
        s50_list.append(amount)
    elif re.match('60er Jahre', age):
        s60_list.append(amount)

スクリーンショット 2019-12-21 12.14.45.png

Anzeige als Histogramm.

#Anzeige als Histogramm (mehrfach)
fig, ax = plt.subplots(figsize=(10,8))
labels = ['10', '20', '30', '40', '50', '60']
ax.hist((s10_list, s20_list, s30_list, s40_list, s50_list, s60_list), label=labels)
plt.xlabel('Maximum amount')
plt.ylabel('Number of people')
ax.legend()
plt.show()

Ursprünglich ist die Anzahl der Stichproben gering, aber es gibt keine Termine für Personen in den Fünfzigern und Sechzigern, und es ist ersichtlich, dass der Markt in den Zwanzigern und Dreißigern wächst, obwohl er innerhalb des erwarteten Bereichs liegt.

スクリーンショット 2019-12-21 12.17.04.png

Box Whisker

Aktivieren Sie das Kontrollkästchen Whisker-Diagramm. Die Box Whisker sind perfekt, wenn Sie Ausreißer finden möchten.

#Wird als Box Whisker angezeigt
fig, ax = plt.subplots(figsize=(10,8))
labels = ['10', '20', '30', '40', '50', '60']
ax.boxplot((s10_list, s20_list, s30_list, s40_list, s50_list, s60_list), labels=labels)
plt.xlabel('age')
plt.ylabel('Maximum amount')
plt.show()

Sie können sehen, dass die 10-Millionen-Yen-Klasse als Ausreißer erkannt wird. Ist es interessant, das Jahreseinkommen in den Dreißigern zu sehen? Der Unterschied in der Reichweite ist in jeder Altersgruppe am größten.

Die Daten sagen uns, dass sich die Differenz des Jahreseinkommens in den 30er Jahren vergrößern wird. Sie können auch sehen, dass die Mindestgrenze für Menschen in den Vierzigern 6 Millionen Yen beträgt.

スクリーンショット 2019-12-21 12.19.01.png

wordcloud Extrahieren Sie die Ambitionen in den Scraped-Daten und zeigen Sie sie zur Visualisierung in der Wortwolke an.

Führen Sie den folgenden Befehl aus, um WordCloud zu verwenden, um die Umgebung zu erstellen (*). In diesem Artikel wird ** fonts-takao-mincho ** für die japanische Schriftart verwendet.

(*) Die Umgebung dieses Artikels ist Razupai

$ pip3 install wordcloud $ sudo apt-get install fonts-takao-mincho

Extrahieren Sie Ambitionen aus dem Datenrahmen und fügen Sie sie der Liste hinzu.

#Extrahieren Sie Ambitionen aus Datenrahmen und fügen Sie sie der Liste hinzu
word_list = []
for w in df["Ambition"]:
    if type(w) is  float:
        w = str(w)
    word_list.append(w)

Kombinieren Sie die Elemente der Liste zu einem Wortobjekt.

#In Word-Objekt speichern
word = ''
for w in word_list:
    word += w
      
word.replace(',', '')     

スクリーンショット 2019-12-21 12.44.14.png

Erstellen Sie eine Wortwolke. Wenn Sie zu diesem Zeitpunkt auf Japanisch anzeigen möchten, geben Sie den Schriftpfad an.

from wordcloud import STOPWORDS, WordCloud
#Wortwolkenerstellung
wordcloud = WordCloud(width=1200, height=900, background_color='white', colormap='winter', font_path='/usr/share/fonts/truetype/fonts-japanese-mincho.ttf')

wordcloud.generate(word)
wordcloud.to_file('wordcloud.png')

スクリーンショット 2019-12-21 12.57.31.png

Zeigen Sie die erstellte Wortwolke an.

#Bildschirm
from IPython.display import Image
Image("./wordcloud.png ")

スクリーンショット 2019-12-21 12.57.59.png

Was ich bei der Analyse der Daten des Ingenieurmarktes gesehen habe

Es war eine wesentliche und universelle Sache, die sich nie geändert hat, ** Wissen zu lernen und Ingenieur zu werden **.

Datenanalyse 2

Wir werden das obige Programm ein wenig verbessern und andere erfasste Daten analysieren.

Liste der kumulierten teilnehmenden Unternehmen

Wir werden die Daten der kumulativen Liste der teilnehmenden Unternehmen als Ranking verwenden, um zu untersuchen, welche Arten von Unternehmen beliebt sind. Bereiten Sie den Datenrahmen auf die gleiche Weise vor.

Die folgenden sortieren ** Nominierungen ** in absteigender Reihenfolge und zeigen die Top Ten an. Da die Anzahl der Nominierungen groß ist, können Sie sehen, dass sich das Unternehmen auf Rekrutierungsaktivitäten konzentriert.

#CSV-Datei lesen
df_com = pd.read_csv("/tmp/companies_list.csv", names=("Name der Firma", "Synthität", "Name",  "Anzahl der Liebesrufe", "Zustimmung (Akzeptanzrate)"))
#Sortieren Sie die Nominierungen in absteigender Reihenfolge und zeigen Sie die Top 10 an
df_com.sort_values(by="Name", ascending=False).head(10)

スクリーンショット 2019-12-21 13.08.04.png

(*) Der Synthesegrad wird auf NaN gesetzt, da das Datenattribut ** hidden-xs.hidden-sm ** ist. Daher wurde dieses Programm als eine Art Gerät erkannt und angezeigt und konnte nicht erfasst werden.

Die folgenden Sortierungen ** Liebesanrufe ** in absteigender Reihenfolge und Anzeige der Top 10. Sie können sehen, dass es ein beliebtes Unternehmen ist, weil es in absteigender Reihenfolge der Liebesrufe ist.

#Sortieren Sie die Anzahl der Liebesrufe in absteigender Reihenfolge und zeigen Sie die Top 10 an
df_com.sort_values(by="Anzahl der Liebesrufe", ascending=False).head(10)

スクリーンショット 2019-12-21 13.18.04.png

Frühere Gebotsergebnisse (Anzahl der Teilnehmer / Anzahl der teilnehmenden Unternehmen / Gesamtzahl der Nominierungen)

Untersuchen Sie frühere Gebotsergebnisse. Die gescrapten Daten werden in absteigender Reihenfolge des Index sortiert, da sich die 22. Daten oben befinden.

#CSV-Datei lesen
df_results = pd.read_csv("/tmp/past_bid_results.csv", names=("Zentrale Darstellung Jahreseinkommen", "Mal", "Anzahl der teilnehmenden Unternehmen", "Die Anzahl der Teilnehmer", "Gesamtzahl der Nominierungen", "Jährliches Gesamteinkommen dargestellt", "Durchschnittliches Jahresgehalt"))
#Sortieren
df_results = df_results.loc[:, ["Mal", "Die Anzahl der Teilnehmer", "Anzahl der teilnehmenden Unternehmen", "Gesamtzahl der Nominierungen", "Durchschnittliches Jahresgehalt", "Zentrale Darstellung Jahreseinkommen", "Jährliches Gesamteinkommen dargestellt"]]
#Nach absteigendem Index sortieren
df_results = df_results.sort_index(ascending=False)

スクリーンショット 2019-12-22 21.10.47.png

Überprüfen Sie die Anzahl der Teilnehmer, die Anzahl der teilnehmenden Unternehmen und die Gesamtzahl der Nominierungen im letzten Gebot in chronologischer Reihenfolge.

x = ['1', '2', '3', '4', '5', '6' , '7' , '8' , '9' , '10' , '11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21' , '22']
y = []
y2 = []
y3 = []
for i in df_results["Die Anzahl der Teilnehmer"]:
    y.append(i)
for i in df_results["Anzahl der teilnehmenden Unternehmen"]:
    y2.append(i)
for i in df_results["Gesamtzahl der Nominierungen"]:
    y3.append(i)

fig, ax = plt.subplots()
ax.plot(x, y, label='Number of participants')
ax.plot(x, y2, label='Number of participating companies')
ax.plot(x, y3, label='Total nominations')
ax.legend(loc='best')
plt.xlabel('time')
plt.ylabel('number')
plt.show()

スクリーンショット 2019-12-22 21.18.24.png

Die Zahl der Teilnehmer ist nahezu unverändert geblieben, und die Zahl der teilnehmenden Unternehmen hat nach und nach zugenommen. Die Gesamtzahl der Nominierungen hat sich um -36% verringert, berechnet auf der Grundlage der Änderungsrate (*) der 15. Sitzung, die zur gleichen Zeit wie im letzten Jahr stattfand.

Änderungsrate= \frac{(Referenzzeitpunkt-Referenzzeit jedes Mal)}{Referenzzeit} × 100

Ergebnisse früherer Gebote (durchschnittliches Jahreseinkommen / zentrales Jahreseinkommen)

Überprüfen Sie das durchschnittliche Jahresgehalt und das zentrale Jahresgehalt der Ergebnisse früherer Gebote in chronologischer Reihenfolge.

x = ['1', '2', '3', '4', '5', '6' , '7' , '8' , '9' , '10' , '11' , '12' , '13' , '14' , '15' , '16' , '17' , '18' , '19' , '20' , '21' , '22']
y = []
y2 = []
for i in df_results["Durchschnittliches Jahresgehalt"]:
    y.append(i)
for i in df_results["Zentrale Darstellung Jahreseinkommen"]:
    y2.append(i)

fig, ax = plt.subplots()
ax.plot(x, y, label='Average presented annual income')
ax.plot(x, y2, label='Centrally presented annual income')
ax.legend(loc='best')
plt.xlabel('time')
plt.ylabel('Amount of money')
plt.show()

スクリーンショット 2019-12-22 21.11.41.png

Das durchschnittliche Jahresgehalt und das zentral präsentierte Jahresgehalt vom 3. bis zum 19. waren im Aufwärtstrend, aber es ist zu sehen, dass sie vom 20. bis zum 22., der Ende dieses Jahres stattfand, zurückgegangen sind.

Zusammenfassung der Ergebnisse der Ingenieurmarktumfrage

Soweit die teilnehmenden Unternehmen als Prämisse gesehen werden, gibt es kein SIer-System. Die meisten von ihnen sind operative Unternehmen, die grob in große Unternehmen, webbasierte Mega-Ventures und Startups unterteilt werden können. Darüber hinaus haben die meisten Unternehmen ihren Sitz in Tokio.

Aus den Beispieldaten kann daher ** der Ingenieurmarktwert der Betreibergesellschaft ** abgeleitet werden.

Das Obige ist eine Zusammenfassung der Umfrageergebnisse basierend auf den Annahmen.

Referenz

Basierend auf den Umfrageergebnissen von 2018, die im IT Human Resources White Paper 2019 aufgeführt sind, beträgt die Gesamtzahl der inländischen IT-Humanressourcen ** 1.226.000 **. Unter ihnen sind 938.000 IT-Mitarbeiter des IT-Unternehmens (IT-Anbieterseite) und 288.000 ** IT-Mitarbeiter des IT-Unternehmens (IT-Benutzerseite).

Quelle: Weißbuch zur IT-Personalabteilung 2019 Abbildung 1-2-8 Schätzung der Gesamtzahl der IT-Personalabteilung

Siehe "Jahresbericht 2018 der Arbeitskräfteerhebung" des Jahresberichts der Arbeitskräfteerhebung, der ein Umfragematerial des Ministeriums für innere Angelegenheiten und Kommunikation ist. Die durchschnittliche Anzahl regulärer männlicher Angestellter / Angestellter lag 2018 bei 5 bis 6,99 Millionen Yen, was mit 22,8% der höchste Wert war (plus 0,1 Punkte gegenüber dem Vorjahr), gefolgt von 3 bis 3,99 Millionen Yen mit 19,8% (gleiche Rate wie im Vorjahr). Es ist geworden. Bei Männern und Frauen liegt der höchste Preis bei 3 bis 3,99 Millionen Yen.

Quelle: Statistische Tabelle II Detaillierte Tabelle "II-A-Tabelle 3" - "Arbeitseinkommen (jährlich), Anzahl der Beschäftigten nach Beschäftigungsart"

Informationen zu statistischen Informationen zu Löhnen von Systemingenieuren und Programmierern finden Sie unter e-Stat, einer Website des Regierungsstatistikportals, auf der Sie japanische Statistiken anzeigen können. Es ist unten gezeigt.

スクリーンショット 2019-12-24 00.10.07.png

abschließend

Es ist ersichtlich, dass die im Entwurf für einen Karrierewechsel beobachteten Daten nur einen kleinen Teil der insgesamt rund 1,2 Millionen inländischen IT-Mitarbeiter ausmachen.

Da der Begriff IT-Personal im weitesten Sinne verwendet wird, umfasst er Systemingenieure, Programmierer und Berater. Die meisten von ihnen lassen sich grob in die Informationsdienstleistungsbranche der Informations- und Kommunikationsbranche und die das Internet begleitende Dienstleistungsbranche einteilen. Da jedoch die Ingenieure, die in Kraftfahrzeugen wie dem Automobilbau einbauen, in die Automobilindustrie eingeteilt sind, ist die tatsächliche Situation in der gesamten Branche Es stellte sich heraus, dass es schwierig zu schätzen war.

Ein Blick auf den jährlichen Arbeitskräfteerhebungsbericht des Ministeriums für innere Angelegenheiten und Kommunikation geht aus dem Entwurf des Arbeitsplatzwechsels hervor, der auf der Tatsache beruht, dass es viele reguläre männliche Angestellte und Angestellte in der Klasse 500 bis 699 gibt, und auf statistischen Daten zu E-Stat-Löhnen. Der Marktwert von 6 Millionen Yen kann für die gesamte Branche gleich sein.

Ich denke, dass Geld später kommen wird, wenn meine Fähigkeiten (was ich gut kann) mit denen der Gesellschaft und des Unternehmens übereinstimmen. Lassen Sie uns die Kante arbeiten.

Recommended Posts

Was ich bei der Analyse der Daten des Ingenieurmarktes gesehen habe
Ich habe es herausgefunden, indem ich die Bewertungen der Website für Jobwechsel analysiert habe! ??
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Ich habe versucht, die API von Sakenowa Data Project zu verwenden
Was ich durch die Teilnahme am ISUCON10-Qualifying gelernt habe
[Erste Datenwissenschaft ⑥] Ich habe versucht, den Marktpreis von Restaurants in Tokio zu visualisieren
Gzip komprimiert Daten durch Streaming
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Ich habe 4 Bibliotheken des Python 3 Engineer Certification Data Analysis-Tests studiert
Was passiert, wenn ich die Hyperparameter von SVM (RBF-Kernel) ändere?
Ich habe den Mechanismus der Flaschenanmeldung untersucht!
Analysieren Sie den altersspezifischen Schweregrad des Coronavirus
10 Auswahlen der Datenextraktion durch pandas.DataFrame.query
Animation von Geodaten durch Geopandas
Ich habe versucht, die optimale Route des Traumlandes durch (Quanten-) Tempern zu finden
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, das Ergebnis des A / B-Tests mit dem Chi-Quadrat-Test zu überprüfen
Erläutern Sie den Mechanismus der PEP557-Datenklasse
Ich habe den Inhalt des Docker-Volumes überprüft
Ich habe den asynchronen Server von Django 3.0 ausprobiert
Ich habe die Optionen von copyMakeBorder von OpenCV überprüft
Holen Sie sich die Spaltenliste und Datenliste von CASTable
Die Ordnerstruktur von Flask ist zusammengefasst
Was ist die Ursache für den folgenden Fehler?
Ich kannte die Grundlagen von Python nicht
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Die Python-Projektvorlage, an die ich denke.
Ich habe das Datenaufbereitungstool Paxata berührt
Visualisieren Sie die Exportdaten des Piyo-Protokolls
Ich möchte den Transferstatus der 2020 J League visualisieren. Was soll ich tun?
Was sind die Merkmale von AV-Schauspielerinnen? Ich habe aus dem Titel der Arbeit geraten! (^ _ ^) / ~~
Testen Sie, ob die beobachteten Daten der Poisson-Verteilung folgen (Test der Eignung der Poisson-Verteilung durch Python)
Ich habe versucht, das Vorhandensein oder Nichtvorhandensein von Schnee durch maschinelles Lernen vorherzusagen.
Link zu den Datenpunkten des von jupyterlab & matplotlib erstellten Diagramms
[GAN] Ich sah die Dunkelheit versuchen, die endgültige Entwicklung von Pokemon weiterzuentwickeln