Переваги фрейму даних панд перед звичайною реляційною базою даних


13

У Data Science багато хто, здається, використовує рамки даних панди як сховище даних. Які особливості панд роблять її кращою сховищем даних у порівнянні зі звичайними реляційними базами даних, такими як MySQL , які використовуються для зберігання даних у багатьох інших областях програмування?

Хоча панди надають деякі корисні функції для дослідження даних, ви не можете використовувати SQL і втрачаєте такі функції, як оптимізація запитів або обмеження доступу.


5
панди - це не сховище даних. Вимкніть комп’ютер, і ваш кадр даних там не буде. панди призначені для перегляду пам’яті. Що означає, якщо вона не вписується в пам’ять, вона не спрацює. Але у нього є великий брат під назвою Іскра, так що це не велика справа. Фактично, великий брат підтримує оптимізацію SQL та запитів. Дивіться також pandas.pydata.org/pandas-docs/stable/comppare_with_sql.html
Emre

Відповіді:


8

Я думаю, що у вашому питанні є проблема. Панди не є "сховищем даних" таким, яким є RDBMS. Pandas - бібліотека Python для управління даними, які вмістяться в пам'яті. Недоліки:

  • Панди не зберігають дані. Він навіть має (повільну) функцію під назвою TO_SQL, яка збереже ваш кадр даних панди в таблиці RDBMS.
  • Панди будуть обробляти лише ті результати, які вміщуються в пам'яті, які легко заповнити. Ви можете або використовувати dask, щоб обійти це, або ви можете працювати над даними в RDBMS (який використовує всілякі хитрощі, як тимчасовий простір) для роботи над даними, що перевищують оперативну пам'ять.

2

З панд ( Головна сторінка )

Бібліотека аналізу даних Python¶

pandas - це бібліотека з відкритим кодом, що має ліцензію на BSD, що забезпечує високопродуктивні, прості у використанні структури даних та інструменти аналізу даних для мови програмування Python.

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

Для цього в пандах доступні різні методи, які дозволяють виконати деякі операції з реляційної алгебри, які можна порівняти з SQL.

Також Pandas забезпечує легкий доступ до NumPy , який

є основним пакетом наукових обчислень з Python. Він містить серед іншого:

  • потужний об'єкт N-розмірного масиву
  • складні (мовні) функції
  • інструменти для інтеграції C / C ++ та коду Fortran
  • корисна лінійна алгебра, перетворення Фур'є та випадкові числа

2

Окрім прийнятої відповіді:

Реляційні бази даних мають велику кількість байтів накладних на рядок (приклад: це питання ), який використовується для ведення бухгалтерського обліку, повідомляючи нулі з ненульових значень, забезпечуючи стандарти, такі як ACID . Щоразу, коли ви читаєте / записуєте стовпець, буде прочитано не лише кілька байтів, що представляють значення цього стовпця, але й ці байти бухгалтерського обліку будуть доступні та можливо оновлені.

На відміну від цього, панди (також R. таблиця даних) більше схожі на сховище стовпців пам'яті. Один стовпець - це лише масив значень, і ви можете використовувати швидкі нумеровані векторизовані операції / перелік списків, які отримують доступ лише до значень, які вам справді потрібні. Просто те, що для таблиць з кількома примітивними стовпцями робить реляційні бази даних у багато разів повільнішими для багатьох випадків використання наукових даних.


2

Pandas - це інструмент зберігання даних у пам'яті. Це дозволяє дуже швидко робити обчислення великої кількості даних.

SQL (зазвичай) наполегливо зберігає дані та є базою даних. Можна також запустити db пам'яті SQL, який може бути швидшим, ніж використання панд, таких як SQLite.


0

SQL дозволяє зберігати та робити безліч різних трансакцій відносин і завжди мати їх доступними для різних цілей. По суті, одне джерело істини або місце, куди слід піти. Там над головою точно. Однак деякі аналізи можуть бути дуже складними і вимагають значної кількості операцій на основі встановлених даних, що може дуже швидко перетворити навіть невеликий набір даних у великий. У мене були процеси обробки даних, які мають понад 2000 запитів, які обробляють терабайти менше ніж за 5 хвилин і можуть набрати мільярди записів для прогнозованої моделі в кінці, а python і numpy набрали частину набору даних у 10 разів як реляційний сховище даних та подавати його до рівня презентації.

Додатковий момент, якщо робити це в хмарі, переконайтеся, що у вас є динамічний екземпляр, який може масштабувати його пам'ять. У SQL справа в тому, щоб мати диск і достатньо обчислити, щоб це вчасно зробити.

Я бачу багато способів, як вони можуть працювати в синергії. Багато завдань, що займаються науковою інформацією, - це те, що Pandas був розроблений. Деякі завдання з науково-технічних даних - це те, що були розроблені RDB. Використовуйте обидва в балансі.

Вся справа в правильному інструменті, щоб виконати правильну роботу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.