Как расширить DataFrames в Pandas с помощью пользовательских методов для усиления функциональности и читаемости кода

Расширение функциональности и улучшение читаемости кода в Pandas с помощью пользовательских методов для работы с DataFrames

Пошаговое руководство по расширению объектов DataFrame в pandas с помощью пользовательских методов, включая полные примеры того, как реализовать расширения для условной вероятности и ожидаемых значений

Фото от Markus Spiske на Unsplash

Вступление

Проблема

DataFrame в pandas предоставляет широкий набор встроенных функций, но всегда есть новые способы, которыми программисты на Python захотят исследовать и преобразовывать свои данные.

Возможность

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

Дальнейшее развитие

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

Фон

Я писал код для библиотеки по причинной аналитике, который включал сложные операции с данными, и постоянные вызовы функций делали код сложным для чтения и понимания.

Мне пришла идея, что если DataFrame в pandas будет выполнять то, для чего я пишу функции, нативно, код станет чистым, простым и понятным, и оттуда только небольшой шаг до того, как узнать, как расширить pandas самостоятельно…

Решение

Первая функция, которую я хотел реализовать, была функция вероятности и условной вероятности. Рассмотрим следующий набор данных…

Изображение от автора

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