Pythonでデータベースからデータを取得する方法は? Pythonを使用したデータのインポート

公開: 2021-03-09

データ分析は、今日のテクノロジー主導の作業環境において、若い卒業生、エンジニア、およびマネージャーにとって不可欠なスキルです。 この記事では、Pythonでデータベースからデータをフェッチする方法と、いくつかの基本的な概念を理解する方法について説明します。

目次

Pythonデータベースを使用したデータ抽出

データ抽出には、さまざまなソースからデータを取得し、場合によってはそれをさらに処理し、さらに分析するためにリポジトリに移行することが含まれます。 そのため、その過程である種のデータ変換が発生します。 そして、Pythonはそのようなデータサイエンスタスクのための主要なプログラミング言語の1つです。 この汎用およびスクリプト言語のユーザーは、世界中で820万人います。

次のガイドでは、オープンソースのリレーショナルデータベースシステムであるPostgreSQLを使用した抽出方法について説明します。 結果セットをJSONオブジェクトとして返すROW_TO_JSON関数を提供します。これは、中括弧{}で囲まれています。 JSONデータ型は、クエリ結果をより便利に操作するのに役立ちます。 ただし、始める前に、psycopg2-binaryなどの仮想環境がインストールされていることを確認してください。

Pythonデータベースの基本

American National Football League(NFL)のPostgreSQLデータベースがあるとします。 これには、選手、コーチ、チームのテーブルに関する情報が含まれます。 また、保存されたデータについて把握するために、次の詳細に注意してください。

  • プレーヤーのデータテーブルには、主キーであるathelete_id、プレーヤーの姓名、ジャージ番号、体重(kg)、身長(m)、出身国などの詳細が含まれています。 また、各選手のチームを示す外部キーであるteam_idも保持します。
  • コーチのデータテーブルには、名前と名前に加えて、coach_id(主キー)とteam_id(チームのテーブルフィールドを参照する外部キー)があります。
  • 最後に、名前、会議、ランク、および勝ち負けの合計(「ホーム」と「アウェイ」に分かれています)を使用して、すべてのサッカーチームを説明するチームの表があります。 ここで、主キーはteam_idであり、上記の表で参照されています。

データセットに慣れてきたので、チームのリストを取得するSQLクエリを作成する方法を見ていきましょう。 たとえば、会議とランクに従って順序付けられたサッカーチームが必要です。 また、各チームのアスリートまたはプレーヤーの数と、コーチの名前を抽出する必要があります。 また、自宅と外出先の両方で、チームの勝ち負けの数を知りたい場合もあります。

このプロセスを開始するには、以下の手順に従ってください。

選択する

f.name、

f.city、

f。会議、

f.conference_rank、

COUNT(a.player_id)AS number_of_athletes、

CONCAT(c.first_name、''、c.last_name)ASコーチ、

f.home_wins、

f.away_wins

アスリートa、チームf、コーチcから

WHERE a.team_id = f.team_id

AND c.team_id = f.team_id

GROUP BY f.name、c.first_name、c.last_name、f.city、f.conference、f.conference_rank、f.home_wins、f.away_wins

ORDER BY f.conference、f.conference_rank

この後、前述のJSON関数(ROW_TO_JSON)内でクエリをワープできます。 これにより、現在のディレクトリにあるquery.sqlというファイルにデータが保存されます。 次に、以下の手順に進みます。

SELECT ROW_TO_JSON(team_info)FROM(

選択する

f.name、

f.city、

f。会議、

f.conference_rank、

COUNT(a.athelete_id)AS number_of_atheletes、

CONCAT(c.first_name、''、c.last_name)ASコーチ、

f.home_wins、

f.away_wins

アスリートa、チームf、コーチcから

WHERE a.team_id = f.team_id

AND c.team_id = f.team_id

GROUP BY f.name、c.first_name、c.last_name、f.city、f.conference、f.conference_rank、f.home_wins、f.away_wins

ORDER BY f.conference、f.conference_rank

)AS team_info

各行がPythonディクショナリの構造を持っていることがわかります。 キーは、クエリによって返されるフィールド名にすぎません。

さらに、環境変数が一目でわかるようにするために、初期化ファイルにいくつかの変更を適用できます。 必要に応じて、次のいずれかの方法を選択してください。

  • Windowsの場合:[コントロールパネル]→[システム]→[システムの詳細設定]→[詳細設定]タブ→[環境変数]。
  • Unixライクな環境の場合:初期化ファイルにユーザー名とパスワードに関する2行を追加します。

これで、Pythonコードを作成する準備が整いました。 最初に、エラーを防ぐためにいくつかのモジュールと関数をインポートします。 これらのステートメントは、それを達成するのに役立ちます。

OSのインポート

psycopg2をpとしてインポートします

psycopg2インポートエラーから

次に、query.sqlの内容をロードして接続をインスタンス化します。 openコマンドとreadコマンドを使用してSQLデータベースファイルを開き、データベースユーザー、パスワード、ホスト、およびポート番号を指定して、接続機能を使用してNFLデータベースに接続します。

また読む: GitHubのPythonプロジェクト

Pythonでデータベースからデータを取得する方法は?

データベース接続を確立したら、クエリの実行に進むことができます。 'cursor'と呼ばれる制御構造を使用する必要があります。 「cursor=conn.cursor()」を記述し、続いて「cursor.execute(query)」を記述するのと同じくらい簡単です。 結果には、辞書形式のタプル(1要素)のリストが含まれます。

結果=cursor.fetchall()

この段階で、結果の反復を試みることができます。 コンテンツは必要に応じて操作したり、スプレッドシートやHTMLテーブルなどに挿入またはフィードしたりできます。終了したら、コードをラップしてクリーンアップすることを忘れないでください。 try-except-blockを使用し、「finally」文を追加することでこれを行うことができます。

リレーショナルまたはその他の大規模なデータセットを処理している場合、特に結果を操作したい場合は、テーブルをクエリするための基本的なツールが必要だと感じます。 このようなデータ変換は、Pythonを使用して簡単に実現できます。

したがって、ほとんどの大学院の研究プログラムには、カリキュラムの一部としてこれらの技術の知識が含まれています。 いくつかの例には、データサイエンスのアソシエイトディプロマ(IIIT-バンガロア)やビジネス分析のグローバルマスター証明書(ミシガン州立大学)が含まれます。

チェックアウト: Pythonオープンソースプロジェクトのアイデア

結論

このPythonデータベースのチュートリアルでは、リレーショナルデータベースに接続し、クエリを実行し、結果をインポートする方法を学びました。 Pythonを使用してさらに多くのことを実行し、必要なことを実行するようにコードを適合させることができます。

このガイドが、明確さを見つけ、好奇心を刺激するのに役立つことを願っています。

世界のトップ大学からデータサイエンスコースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

Pythonリクエストを使用してAPIからデータをどのようにプルしますか?

APIからデータを受信する場合は、従来のWebサイトとやり取りする場合と同様に、サーバーから要求を行う必要があります。 Pythonを使用してAPIからデータを取得するには、requestsパッケージを使用する必要があります。 Pythonでは、RequestsはHTTPリクエストを作成するための標準ライブラリです。 抽象化されているため、特にAPIを使用する場合は、非常に簡単に使用できます。
リクエストライブラリを使用してリクエストを実行すると、抽出するデータとリクエストステータスコードを含むリクエストオブジェクトが取得されます。 ステータスコードはリクエストのステータスを通知し、リクエストの一部です。 返される情報に応じて、コードは数百の異なる値に分割されます。

SQLiteをPythonに接続する方法は?

a。 SQLiteを使用するには、sqlite3をインポートする必要があります。
b。 次に、connectメソッドを使用して接続を確立し、アクセスするデータベースの名前を指定します。 その名前のファイルが存在する場合は、そのファイルが開かれます。 指定しない場合、Pythonは指定された名前でファイルを作成します。
c。 その後、SQLコマンドを送信できるカーソルオブジェクトが作成されます。 カーソルは、データベースレコードをトラバースおよび取得するための制御構造です。 Pythonを扱う場合、カーソルは非常に重要です。 カーソルオブジェクトは、すべてのコマンドを実行するために使用されます。
d。 オブジェクトを作成し、その中にコメント付きのSQLステートメントを記述して、データベースにテーブルを作成します。 例:-sql_comm=SQLステートメント。
e。 そして、コマンドの実行は簡単です。 sqlコマンドの名前を引数として渡して、cursorメソッドを実行します。 コマンドのリストをsql_comm変数として保存し、実行します。 すべてのタスクを完了したら、変更をコミットしてファイルに保存し、切断します。

Pythonはデータベースに適していますか?

Pythonは、SQLで取得できる構造化された表形式のデータに特に適していますが、SQLだけでは実行が難しい追加の操作が必要になります。