2 задачи для повышения навыков работы с данными на языке Python

2 способа улучшить навыки работы с данными на языке Python

Как преобразовать необработанные данные в более удобный и структурированный формат.

(изображение, созданное автором с помощью Midjourney)

Когда мы изучаем новый инструмент, мы обычно читаем документацию, смотрим учебные пособия, читаем статьи и решаем примеры. Этот подход достаточно хорош и поможет вам освоить инструмент в определенной степени.

Однако, когда мы начинаем использовать инструмент в реальных задачах или для решения реальных проблем, мы должны немного превзойти то, что охвачено большинством учебных пособий.

В этой статье я пошагово объясню, как я использовал Python для обработки двух разных задач по очистке и предварительной обработке данных на своей работе. Для каждой задачи я покажу вам необработанные данные и желаемый формат. Затем я объясню код для приведения данных в этот формат.

Мы глубоко погрузимся во встроенные структуры данных Python и библиотеку Pandas, так что вы можете ожидать изучения интересных вещей о работе с данными в Python.

1. Статистика задач

У меня есть DataFrame с списком задач и их резюме. В этом примере я не использую и не передаю первоначальные данные. Вместо этого я сгенерировал фиктивные данные в том же формате, что и у оригинальных данных. Если вы хотите следовать за выполнением кода, скачайте файл “mock_issues.csv” из моего репозитория datasets.

Что мы будем делать в отношении обработки данных зависит от формата, а не от содержания, поэтому функции и методы, которые мы будем изучать в этой статье, применимы к первоначальным данным. Фактически, процесс полностью совпадает с тем, что я делал на своей работе.

Предположим, у нас есть DataFrame с несколькими строками со следующими колонками:

(изображение создано автором)

Каждая строка в столбце необработанных задач содержит список задач в следующем формате:

""""[1-Метод find_duplicates неэффективно использует структуры данных, что приводит к высокой сложности по времени., 2- Встроенные структуры данных неэффективно используются в методе generate_meta.,3- В классе ExerciseGenerator избыточно используются глобальные переменные, что может замедлить работу программы.,4- Метод get_all_contributors_for_repo не использует встроенные…