データサイエンスでは、多くの人がパンダデータフレームをデータストアとして使用しているようです。他の多くのプログラミング分野でデータを格納するために使用されるMySQLのような通常のリレーショナルデータベースと比較して、それを優れたデータストアにするパンダの機能は何ですか?
パンダにはデータ探索に役立つ機能がいくつかありますが、SQLを使用することはできず、クエリの最適化やアクセス制限などの機能が失われます。
データサイエンスでは、多くの人がパンダデータフレームをデータストアとして使用しているようです。他の多くのプログラミング分野でデータを格納するために使用されるMySQLのような通常のリレーショナルデータベースと比較して、それを優れたデータストアにするパンダの機能は何ですか?
パンダにはデータ探索に役立つ機能がいくつかありますが、SQLを使用することはできず、クエリの最適化やアクセス制限などの機能が失われます。
回答:
パンダから(メインページ)
Pythonデータ分析ライブラリ¶
パンダはオープンソースのBSDライセンスライブラリで、Pythonプログラミング言語用の高性能で使いやすいデータ構造とデータ分析ツールを提供します。
パンダは確かにSQLを介して、または他のいくつかのデータストレージメソッドからデータにアクセスできますが、その主な目的は、Pythonを使用してデータ分析を行うときにそれを簡単にすることです。
そのため、パンダには、SQLと比較できるリレーショナル代数演算を可能にするさまざまなメソッドが用意されています。
また、パンダはNumPyへの簡単なアクセスを提供します。
Pythonによる科学計算のための基本パッケージです。これには、特に次のものが含まれます。
- 強力なN次元配列オブジェクト
- 洗練された(放送)機能
- C / C ++とFortranコードを統合するためのツール
- 有用な線形代数、フーリエ変換、および乱数機能
受け入れられた答えに加えて:
リレーショナルデータベースには、行ごとのオーバーヘッドのバイト数が多く(例:この質問)、簿記に使用され、NULLと非NULLを区別し、ACIDなどの標準を保証します。列を読み書きするたびに、この列の値を表す数バイトが読み取られるだけでなく、これらの簿記バイトもアクセスされ、場合によっては更新されます。
対照的に、パンダ(R data.tableも)は、メモリ内の列ストアに似ています。1つの列は単なる値の配列であり、実際に必要な値のみにアクセスする高速で複雑なベクトル化演算/リストの懸念を使用できます。プリミティブ列が少ないテーブルの場合、リレーショナルデータベースは、多くのデータサイエンスユースケースで数倍遅くなります。
SQLを使用すると、さまざまなリレーショントランザクションを永続化および実行でき、常に複数の異なる用途ですぐに使用できるようになります。本質的には、真実または行き先の1つの情報源です。確かに頭上にあります。ただし、一部の分析は非常に複雑になる可能性があり、大量のセットベースの操作を必要とするため、小さなデータセットでも大きなデータセットにすばやく変換できます。5分未満でテラバイトを処理し、最後に予測モデルの数十億のレコードをスコアリングできる2000を超えるクエリを含むデータプロセスがあり、pythonおよびnumpyは、リレーショナルデータストアとして10倍の時間でデータセットの一部をスコアリングしました。プレゼンテーション層まで提供します。
追加のポイントとして、クラウドでこれを行う場合は、メモリをスケーリングできる動的インスタンスがあることを確認してください。SQLを使用するには、ディスクとそれをタイムリーに実行するための十分なコンピューティングが必要です。
彼らが相乗的に働く方法はたくさんあると思います。多くのデータサイエンスの仕事は、パンダが行うように設計されたものです。一部のデータサイエンスジョブは、RDBが行うように設計されたものです。両方をバランスよく使用してください。
それはすべて、適切な仕事を行うための適切なツールに関するものです。