【Pandas】 sql查询

介绍

在进行数据分析时,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')

导入所需的库
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 进行分组。
按天(一周中的某一天)分组并提取平均小费金额。
周六和周日的小费往往较高。

综上所述

pandasql 是使用 SQL 查询 Pandas DataFrame 的强大工具。 对于熟悉 SQL 的数据分析师和数据科学家来说,这个库可以让 Pandas 的使用更加直观。

在这篇博文中,介绍了 pandasql 的基本用法以及使用 seaborn Tips 数据集的示例。 这能够学习如何轻松地针对 Pandas DataFrame 运行 SQL 查询。

请尝试使用 pandasql 来简化您的数据分析工作!

  • 20
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allan_lam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值