通常のリレーショナルデータベースに対するパンダデータフレームの利点


13

データサイエンスでは、多くの人がパンダデータフレームをデータストアとして使用しているようです。他の多くのプログラミング分野でデータを格納するために使用されるMySQLのような通常のリレーショナルデータベースと比較して、それを優れたデータストアにするパンダの機能は何ですか?

パンダにはデータ探索に役立つ機能がいくつかありますが、SQLを使用することはできず、クエリの最適化やアクセス制限などの機能が失われます。


5
パンダはデータストアではありません。コンピュータの電源を切ると、データフレームはそこにありません。パンダは、メモリを変更するためのものです。つまり、メモリに収まらない場合は機能しません。しかし、Sparkと呼ばれる兄がいるので、それは大した問題ではありません。兄貴は実際にSQLとクエリの最適化をサポートしています。pandas.pydata.org/pandas-docs/stable/comparison_with_sql.html
Emre

回答:


8

あなたの質問の前提には問題があると思います。Pandasは、RDBMSのように「データストア」ではありません。Pandasは、メモリに収まるデータを操作するためのPythonライブラリです。短所:

  • パンダはデータを保持しません。パンダのデータフレームをRDBMSテーブルに永続化するTO_SQLと呼ばれる(遅い)関数もあります。
  • パンダは、メモリに収まる結果のみを処理するため、簡単に入力できます。daskを使用してそれを回避することも、RDBMS(一時スペースなどのあらゆる種類のトリックを使用)のデータを操作して、RAMを超えるデータを操作することもできます。

2

パンダから(メインページ

Pythonデータ分析ライブラリ¶

パンダはオープンソースのBSDライセンスライブラリで、Pythonプログラミング言語用の高性能で使いやすいデータ構造とデータ分析ツールを提供します。

パンダは確かにSQLを介して、または他のいくつかのデータストレージメソッドからデータにアクセスできますが、その主な目的は、Pythonを使用してデータ分析を行うときにそれを簡単にすることです。

そのため、パンダには、SQLと比較できるリレーショナル代数演算を可能にするさまざまなメソッドが用意されています。

また、パンダはNumPyへの簡単なアクセスを提供します。

Pythonによる科学計算のための基本パッケージです。これには、特に次のものが含まれます。

  • 強力なN次元配列オブジェクト
  • 洗練された(放送)機能
  • C / C ++とFortranコードを統合するためのツール
  • 有用な線形代数、フーリエ変換、および乱数機能

2

受け入れられた答えに加えて:

リレーショナルデータベースには、行ごとのオーバーヘッドのバイト数が多く(例:この質問)、簿記に使用され、NULLと非NULLを区別し、ACIDなどの標準を保証します。列を読み書きするたびに、この列の値を表す数バイトが読み取られるだけでなく、これらの簿記バイトもアクセスされ、場合によっては更新されます。

対照的に、パンダ(R data.tableも)は、メモリ内の列ストアに似ています。1つの列は単なる値の配列であり、実際に必要な値のみにアクセスする高速で複雑なベクトル化演算/リストの懸念を使用できます。プリミティブ列が少ないテーブルの場合、リレーショナルデータベースは、多くのデータサイエンスユースケースで数倍遅くなります。


2

Pandasは、メモリ内のデータストレージツールです。これにより、大量のデータに対して非常に迅速に非常に迅速な計算を行うことができます。

SQLは(通常)永続的にデータを格納し、データベースです。SQLiteなどのパンダを使用するよりも高速なインメモリSQL dbを実行することもできます。


0

SQLを使用すると、さまざまなリレーショントランザクションを永続化および実行でき、常に複数の異なる用途ですぐに使用できるようになります。本質的には、真実または行き先の1つの情報源です。確かに頭上にあります。ただし、一部の分析は非常に複雑になる可能性があり、大量のセットベースの操作を必要とするため、小さなデータセットでも大きなデータセットにすばやく変換できます。5分未満でテラバイトを処理し、最後に予測モデルの数十億のレコードをスコアリングできる2000を超えるクエリを含むデータプロセスがあり、pythonおよびnumpyは、リレーショナルデータストアとして10倍の時間でデータセットの一部をスコアリングしました。プレゼンテーション層まで提供します。

追加のポイントとして、クラウドでこれを行う場合は、メモリをスケーリングできる動的インスタンスがあることを確認してください。SQLを使用するには、ディスクとそれをタイムリーに実行するための十分なコンピューティングが必要です。

彼らが相乗的に働く方法はたくさんあると思います。多くのデータサイエンスの仕事は、パンダが行うように設計されたものです。一部のデータサイエンスジョブは、RDBが行うように設計されたものです。両方をバランスよく使用してください。

それはすべて、適切な仕事を行うための適切なツールに関するものです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.