5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jupyter Notebook内でSQLを操作する方法

Last updated at Posted at 2022-12-23

はじめに

  • データ分析の勉強をしている初心者かつSQLの環境構築がめんどくさい人向けに、SQLのコマンド練習が出来るように書きました

1.マジックコマンドを使えるようにする

まずは以下のコードをそれぞれ打ち込み、SQLを使えるようにする

pip install ipython-sql
%load ext-sql

そうするとコマンドの最初に%%sqlと入力することで、そのセルだけSQLのコマンドが使えるようになる

2.SQLサーバーを立てる

次にSQLサーバーを立てるが、今回はOSSであるSQLiteを使う。
環境構築を必要とせずライブラリ感覚で使える。

%sql sqlite:///tmp.sqlite3

これでもうSQLは使えるようになった。
ぜひSQLコマンドを入力して試してほしい

%%sql
SELECT 'Hello' as World

しかし、ただ単にSQLが使えてもPandasでいいじゃんとなりそうなので互換性を持つためにデータの共有をするためのコマンドを以下に記載しておく

3.PandasからSQLにデータを送る

最初にPandasにデータを読み込んでもらった場合

import pandas as pd
df = pd.read_csv('データへのパス')

そしてデータをSQLに送る

df.to_sql('自分でつけるテーブル名','sqlite:///tmp.sqlite3(サーバー名)')

そうすると出力結果として謎の数値が出てきますがこれは行数なので気にしないでください。

4.SQLからPandasにデータを送る

例えばデータを抽出してPandasに送る場合は以下の通りである
(今回はgroup byでまとめてその個数も表示するような状態)

data = pd.read_sql_query(
'''
select カラム, count(*) as num
from テーブル名
group by
    カラム名
order by
    num desc
''','sqlite:///tmp.sqlite3(サーバー)')

要約すると

data = pd.read_sql_query('''SQLコマンドでデータ選択''','もらってくるサーバー')

後はSQLでのデータ加工をし放題です。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?