背景
Pandasの方が慣れており、仕事でSQLにつまづく
⇨手軽に練習する環境が欲しい(ローカル、Python)
⇨pandasql
備考
- SQLiteです。職場の環境とは違いますが、一般的なSQL練習として良しとしました
- pandasqlを紹介するページは他にありますが、「sqlをpandasでどう書けばいいの?」という主旨のページが多く、私と同じ背景の人は少ない印象だったので、ページを残すことにしました
パッケージをインストール
pip install pandasql
コード例
データフレームの変数名をテーブル名のところに入れて、SQLを書くだけ
いつもPandasで触ってるデータフレームに対して、SQLを発行できます
import pandas as pd
from pandasql import sqldf, load_meat, load_births
# get data
df_meat = load_meat()
# df_births = load_births()
# check data (if you want)
if False: # just check
df_meat.shape
df_meat.head(2).T
df_meat.dtypes
df_meat.duplicated().sum()
df_meat.isnull().sum()
df_meat.nunique()
desc = df_meat.describe().T
desc[['min','25%','50%','75%','max']]
desc[['mean','std']]
# sql scripts 1
sql = '''
SELECT
*
FROM
df_meat
LIMIT
10;
'''
# execute sql 1
res = sqldf(sql, locals())
res
# sql scripts 2
sql = '''
SELECT
other_chicken,
avg(beef) as avg_beef
FROM
df_meat
GROUP BY
other_chicken
ORDER BY
avg_beef DESC
LIMIT
10
;
'''
# execute sql 2
res = sqldf(sql, locals())
res