From 0b0679c925122056dcd89ab144cfba4e31a85e88 Mon Sep 17 00:00:00 2001 From: KyreOn Date: Sun, 12 Dec 2021 15:55:53 +0500 Subject: [PATCH 1/2] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + main.py | 30 ++++++++++++++++++++++++++++++ report.md | 23 +++++++++++++++++++++++ tasks.py | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 main.py create mode 100644 report.md create mode 100644 tasks.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..485dee6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/main.py b/main.py new file mode 100644 index 0000000..d3fbdd9 --- /dev/null +++ b/main.py @@ -0,0 +1,30 @@ +import pandas as pd + + +def get_match_count(first_list, second_list): + return len(list((filter(lambda x: contains(x[0], x[1]) or contains(x[1], x[0]), zip(first_list, second_list))))) + + +def contains(sub_text, text): + words = sub_text.replace('-', ' ').split(' ') + for word in words: + if word in text: + return True + return False + + +def get_top(source, search_field, return_field, value): + return source[source[search_field].str.contains(value)][return_field].value_counts().head(5) + + +data = pd.read_csv('works.csv').dropna().apply(lambda x: x.astype(str).str.lower()) +count = len(data) +mismatch_count = count - get_match_count(data["jobTitle"], data["qualification"]) + +print(f"Всего людей: {count}.") +print(f"Людей с несовпадающими профессией и должностью: {mismatch_count}.") +print(f"Что составляет {mismatch_count / count:.0%} от общего числа.") +print("\nТоп 5 квалификаций менеджеров:") +print(get_top(data, "jobTitle", "qualification", "менеджер")) +print("\nТоп 5 должностей инженеров:") +print(get_top(data, "qualification", "jobTitle", "инженер")) diff --git a/report.md b/report.md new file mode 100644 index 0000000..fc3ec37 --- /dev/null +++ b/report.md @@ -0,0 +1,23 @@ +###Всего людей: 1068. +###Людей с несовпадающими профессией и должностью: 769. +###Что составляет 72% от общего числа. + +#Топ 5 квалификаций менеджеров: + +|Квалификация|Количество| +|---|---| +|бакалавр|11| +|менеджер|10| +|специалист|6| +|экономист|6| +|экономист-менеджер|4| + +#Топ 5 должностей инженеров: + +|Должность|Количество| +|---|---| +|заместитель директора|3| +|главный инженер |3| +|ведущий инженер-конструктор|2| +|инженер лесопользования|2| +|директор|2| \ No newline at end of file diff --git a/tasks.py b/tasks.py new file mode 100644 index 0000000..9c05211 --- /dev/null +++ b/tasks.py @@ -0,0 +1,32 @@ +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + + +works = pd.read_csv("works.csv") +head = works.head(5) +tail = works.tail(5) + + +# Задание 1 +print(len(works.index)) + +# Задание 2 +print(works["gender"].value_counts()) + +# Задание 3 +print(works["skills"].count()) + +# Задание 4 +print(works["skills"].dropna()) + +# Задание 5 +skills_bool = works["skills"].str.lower().str.contains("python|питон") & works["skills"].notnull() +print(works[skills_bool]["salary"]) + +# Задание 6 +person = np.linspace(.1, 1, 10) +men = works.query('gender == "Мужской"').quantile(person) +women = works.query('gender == "Женский"').quantile(person) +print(men) +print(women) From 84c86c7e966b3be70ae8ce41a72fa1b93463d034 Mon Sep 17 00:00:00 2001 From: KyreOn <70963455+KyreOn@users.noreply.github.com> Date: Sun, 12 Dec 2021 15:56:23 +0500 Subject: [PATCH 2/2] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D1=87=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/report.md b/report.md index fc3ec37..cad9440 100644 --- a/report.md +++ b/report.md @@ -1,8 +1,8 @@ -###Всего людей: 1068. -###Людей с несовпадающими профессией и должностью: 769. -###Что составляет 72% от общего числа. +### Всего людей: 1068. +### Людей с несовпадающими профессией и должностью: 769. +### Что составляет 72% от общего числа. -#Топ 5 квалификаций менеджеров: +# Топ 5 квалификаций менеджеров: |Квалификация|Количество| |---|---| @@ -12,7 +12,7 @@ |экономист|6| |экономист-менеджер|4| -#Топ 5 должностей инженеров: +# Топ 5 должностей инженеров: |Должность|Количество| |---|---| @@ -20,4 +20,4 @@ |главный инженер |3| |ведущий инженер-конструктор|2| |инженер лесопользования|2| -|директор|2| \ No newline at end of file +|директор|2|