Подтвердить что ты не робот

PyCharm долгое время висит в консоли iPython с большими данными

Я видел несколько сообщений PyCharm медленный, но у меня проблема, которая кажется слишком медленной даже по сравнению с обычной работой.

У меня есть большой набор данных в фрейме pandas (чтение из csv файла 440 МБ).

Когда я использую консоль ipython внутри PyCharm, каждый раз, когда я пытаюсь обрабатывать эти данные, скажем, я пишу my_data., он просто висит там около 30 секунд.

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

Как отключить это поведение?

4b9b3361

Ответ 1

Я тоже сталкивался с такой же проблемой в течение долгого времени: отладка PyCharm чрезвычайно медленная при использовании больших pandas данных. Если я хочу просмотреть содержимое фрейма данных в часах, это часто дает мне время ожидания после ожидания минут, поэтому я в основном прекратил использовать отладку при работе с dataframes

То, что я только что нашел, это то, что под

Файлы → Настройки → Сборка, выполнение, развертывание → Отладчик Python

Вы должны включить флаг "Совместимый с Gevent"

Я также включил все остальные флаги в этом окне (собирайте информацию о типах времени rum, присоедините подпроцесс и совместимость с PyQt). Но флаг, совместимый с Gevent, действительно выполняет эту работу для меня: он внезапно мгновенно дает мне содержимое dataframe в часах отладчика.

Я использую PyCharm verion 2016.2.3

Ответ 2

Если вы не возражаете полностью отключить автозаполнение, я думаю, что это должно работать:

Перейдите к File > Settings (Ctrl+Alt+S) > IDE Settings > Editor > Code Completion

И выключите Insert selected variant by typing dot, space, etc.

Ответ 3

В зависимости от того, насколько вы справляетесь с данными, могут пострадать пределы памяти. Ipython помнит каждый In []: и Out []:.

In - это список, который добавляется для каждого, который вы думаете. Out - это еще один список, который добавляется к.

Итак, если у вас очень большой массив, с которым вы работаете в In или Out, вы получите несколько копий массива.