Мною был выбран датасет с данными о зарплате представленных в файле лиц. В нем были данные о зарплате, образовании, опыте работы, возрасте, поле, семейном положении и др. Самыми результативными колонками оказались колонки под номерами 2, 6-8 (а именно зарплата (wage), образование (education), опыт работы (expirience) и возраст (age); остальные имели условные обозначения нулями, единицами и другими цифрами в некоторых случаях)
Для начала создаем массивы колонок, которые мы хотим исследовать. Открываем файл и распределяем колонки по массивам.
Далее приступаем к работе с зарплатами (wage). Минимальное и максимальное значение находим благодаря функциям min() и max(), среднее - с помощью функций sum() и len() (средним будет их частное). Медиана искалась следующим образом:
1. Сортируем список с помощью функции sort()
2. Если длина массива четная (пусть 2n) - то медиана является средним арифметическим элементов с индексами n и n+1.
3. Если же нечетная (2n+1), то медианой будет значение элемента с индексом n+1
Этим алгоритмом я и руководствовался для нахождения медианы (по своей глупости не посчитал число строк в файле, из-за чего в код пришлось вводить эту конструкцию)
Далее мода. Для ее нахождения я создал пустой словарь, в который добавлял в качестве ключа значение зарплаты, а в качестве значения - то, сколько раз это значение встречалось в массиве. Далее я просортировал словарь по убыванию значений, после чего преобразовал его в массив кортежей для дальнейшей работы.
Мне предстояло понять, сколько значений встречалось наибольшее число раз. Для этого я создал пустой массив с модами массива, в который далее добавлю ответ. Затем циклом for я хотел найти, какие ключи имеют значения, равные максимальному (т.е. самому первому). Когда начали идти значения меньше, цикл закончился, тем самым мы получили моду в массиве moda_w
После этого мне предстояло найти дисперсию. Для этого я создал пустой массив, в который добавлял квадраты разностей элементов массива и среднего значения. Затем этот массив я просуммировал и поделил на его длину, тем самым найдя дисперсию (формулу дисперсии я нашел в интернете)
Затем я узнал, что стандартное отклонение - это квадратный корень из дисперсии. Но понял я это слишком поздно, поэтому в коде для стандратного отклонения я пересчитывал дисперсию. Взяв из нее корень, я пришел к итоговому ответу.
Далее сделал все то же самое с образованием, опытом работы и возрастом.
Затем я вывел все данные как в примере и закончил работу!