Является ли pandas более эффективным, чем модуль CSV для ETL? - PullRequest
0 голосов
/ 19 октября 2018

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

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы можете попробовать PyPy (переопределение Python на Python).Если вы хотите, чтобы ваш код работал быстрее , с лучшим использованием памяти.

Подробнее здесь

0 голосов
/ 19 октября 2018

Pandas DataFrame определенно более эффективно использует память, чем обычные списки Python.

Вы должны использовать Pandas.

Взгляните на слайды из выступления Джеффри ТратнерПанды под капотом

Я просто сравниваю несколько ключевых моментов между использованием подхода панды и списков:

  • DataFrames имеют гибкий интерфейс.Если вы выбрали простой подход к списку Pythons, вам нужно будет самостоятельно создать необходимые функции.
  • Многие подпрограммы обработки чисел в пандах реализованы на C или с помощью специализированных числовых библиотек (Numpy), которые всегда будут быстрее кодавы будете писать в своих списках
  • Решение об использовании списков также будет означать, что при больших списках данных компоновка памяти будет снижать производительность, в отличие от Dataframe, где данные разбиваются на блоки одного типа
  • Pandas Dataframe имеет индексы, которые помогут вам легко искать / комбинировать / разбивать данные в зависимости от выбранных вами условий.Индексы реализованы на C и специализируются для каждого типа данных.
  • Pandas может легко читать / записывать данные в различные форматы

Есть гораздо больше преимуществ, которых я, вероятно, даже не знаюоколо.Ключевой момент: Не изобретайте колесо, используйте правильные инструменты, если они у вас есть

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