Датафреймы против списка объектов - PullRequest
0 голосов
/ 04 июня 2019

Когда использовать список объектов над фреймами данных в Python?

У меня есть список строк, которые будут иметь несколько атрибутов, таких как оценка, количество слов, некоторые логические значения и т. Д. Я создал список объектовс этими атрибутами.Но мне интересно, что было бы лучше просто создать кадр данных с каждой строкой в ​​виде строки и добавить ее атрибуты в виде столбцов

class MyObject():

    def getString(self):
        return self.str_name

    def getSimilarity(self):
        return self.similarity

    def getSimilarityBand(self):
        return self.similarity_band

Какой дизайн лучше?

1 Ответ

0 голосов
/ 04 июня 2019

Это очень зависит от вашего контекста.

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

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

В конце концов, все сводится к стилю; и в некотором смысле функциональное программирование против объектно-ориентированного программирования. Питон находится в центре этих миров, поэтому вполне естественно, что будет какой-то конфликт. Там нет правильного или неправильного пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...