はじめに
データ解析を行う際、PandasはPythonのデータ解析ライブラリとして非常に人気があります。しかし、SQLを使用してデータベースからデータを取得・操作するのに慣れている人にとって、Pandasの構文は少し難しく感じることがあります。そこで、pandasqlというライブラリが役立ちます。このライブラリを使用すると、Pandas DataFrameに直接SQLクエリを実行することができます。
このブログ記事では、pandasqlを使用してPandas DataFrameにSQLクエリを実行する方法を紹介します。使用するデータセットとして、seabornライブラリの'tips'データセットを使用します。
pandasqlについて
環境構築
pip install pandas seaborn pandasql
``
# コード
```python
import pandas as pd
import seaborn as sns
from pandasql import sqldf
# seabornからtipsデータセットを読み込む
tips = sns.load_dataset('tips')
query1 = """
SELECT *
FROM tips
LIMIT 5;
"""
result1 = sqldf(query1, globals())
print(result1)
query2 = """
SELECT *
FROM df
WHERE total_bill > 30
LIMIT 5;
"""
result2 = exec_query(query2)
print(result2)
query3 = """
SELECT day, avg(total_bill)
FROM df
GROUP BY day;
"""
result3 = exec_query(query3)
print(result3)
解説
import pandas as pd
import seaborn as sns
from pandasql import sqldf
# seabornからtipsデータセットを読み込む
tips = sns.load_dataset('tips')
必要なライブラリをimportします
seabornのtipsというデータセットにはレストランで支払われたチップのデータが含まれています
query = """
SELECT *
FROM tips
LIMIT 5;
"""
result = sqldf(query, globals())
print(result)
# total_bill tip sex smoker day time size
# 0 16.99 1.01 Female No Sun Dinner 2
# 1 10.34 1.66 Male No Sun Dinner 3
# 2 21.01 3.50 Male No Sun Dinner 3
# 3 23.68 3.31 Male No Sun Dinner 2
# 4 24.59 3.61 Female No Sun Dinner 4
クエリを実行するにはpandasqlのsqldf()関数を使用します。
query2 = """
SELECT *
FROM df
WHERE total_bill > 30
LIMIT 5;
"""
result2 = exec_query(query2)
print(result2)
# total_bill tip sex smoker day time size
# 0 35.26 5.00 Female No Sun Dinner 4
# 1 39.42 7.58 Male No Sat Dinner 4
# 2 31.27 5.00 Male No Sat Dinner 3
# 3 30.40 5.60 Male No Sun Dinner 4
# 4 32.40 6.00 Male No Sun Dinner 4
WHERE句を使用して絞り込みが可能です。
チップの総額が30より多く払っているデータを抽出します。
query3 = """
SELECT day, avg(total_bill)
FROM df
GROUP BY day;
"""
result3 = exec_query(query3)
print(result3)
# day avg(total_bill)
# 0 Fri 17.151579
# 1 Sat 20.441379
# 2 Sun 21.410000
# 3 Thur 17.682742
GROUP BYを使用してグループ化が可能です。
day(曜日)ごとにグループ化して、チップ総額の平均を抽出します。
土日の方がチップの金額が高い傾向です。
おわりに
pandasqlは、SQLを使用してPandas DataFrameにクエリを実行するための強力なツールです。SQLに慣れているデータアナリストやデータサイエンティストにとって、このライブラリはPandasの操作をより直感的にすることができます。
今回のブログ記事では、pandasqlの基本的な使用方法と、seabornのtipsデータセットを使用した実例を紹介しました。これにより、Pandas DataFrameに対してSQLクエリを簡単に実行する方法を学ぶことができました。
データ解析の作業を効率化するために、pandasqlを活用してみてください!