Низкая производительность доступа к ячейкам DataFrame - PullRequest
0 голосов
/ 12 июня 2018

Я использую DataFrame вместо обычной dict для производительности, так как они используют numpy массивы внутри.Однако доступ к ячейке, похоже, оказывает ужасное влияние на производительность.

Мой DataFrame выглядит следующим образом:

df = pd.DataFrame(columns=models1, index=models2).fillna(STATE1).stack()

Типы столбцов моделей - это подклассы Django models.Modelи STATE1 и все остальные состояния являются просто целыми числами.

Мне часто нужно проверять, если df[m1, m2] == state_n, но, по-видимому, просто доступ к ячейке df[m1, m2] занимает много времени: когда я запускаю все, где это утверждениеиспользуется общее время выполнения составляет 0,15 секунды, но когда этот оператор включен, это занимает 0,25 секунды.Это значительное увеличение для операции, которая должна быть O(1), и оператор выполняется только 9216 раз.

Что здесь происходит?Как я могу оптимизировать его производительность?

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