はじめに
- データ分析の勉強をしている初心者かつ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でのデータ加工をし放題です。