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だけでは実行が難しい追加の操作が必要になります。