Через сколько столбцов перестает быть полезной функция set_index в Pandas? - PullRequest
0 голосов
/ 19 декабря 2018

Насколько я понимаю, преимущество использования функции set_index с определенным столбцом состоит в том, что он позволяет прямой доступ к строке на основе значения.Пока вы знаете значение, это устраняет необходимость поиска, используя что-то вроде loc, тем самым сокращая время выполнения операции.Панда также позволяет вам установить несколько столбцов в качестве индекса с помощью этой функции.У меня вопрос, через сколько столбцов эти индексы перестают быть ценными?Если бы я указывал каждый столбец в моем фрейме данных в качестве индекса, я бы все равно увидел увеличение скорости индексации строк по сравнению с поиском с помощью loc?

1 Ответ

0 голосов
/ 19 декабря 2018

Реальная обратная сторона установки всего как индекса глубоко скрыта в документах расширенного индексирования Pandas: индексирование может изменить dtype столбца, для которого установлено значение index .Я ожидаю, что вы столкнетесь с этой проблемой до того, как реализуете ожидаемое повышение производительности.

Что касается этого повышения производительности, вы платите за предварительное индексирование при создании объекта Series, независимо от того, устанавливаете ли вы его явно.AFAIK Pandas индексирует все по умолчанию.И, как пишет Джейк ВандерПлас в своей превосходной книге:

Если Серия - это аналог одномерного массива с гибкими индексами, DataFrame - это аналог двумерного массива синдексы строк и гибкие имена столбцов.Точно так же, как вы можете думать о двумерном массиве как о упорядоченной последовательности выровненных одномерных столбцов, вы можете думать о DataFrame как о последовательности выровненных объектов Series.Здесь под «выровненным» мы подразумеваем, что они имеют один и тот же индекс.- Джейк ВандерПлас, Python Data Science Handbook

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

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