图片来自Unsplash网站。作者:Hitesh Choudhary
在Python中获得与SQL查询相同的结果
通常,在同一个项目上工作时,我们必须在SQL和Python之间切换。话虽如此,我们中有些人熟悉SQL查询中的数据操作,但不熟悉Python中的数据操作,这会影响我们的效率和生产力。实际上,使用Pandas,您可以在Python中获得与SQL查询相同的结果。
开始工作
如果不存在,则需要安装Pandas软件包。
conda install pandas
我们将使用来自Kaggle的著名的Titanic Dataset。
安装软件包并下载数据后,我们需要将其导入到我们的Python环境中。
我们将使用一个DataFrame来存储数据。各种熊猫功能将帮助我们管理此数据结构。
选择,区分,计数,限制
让我们从我们经常使用的简单SQL查询开始。
titanic_df["age"].unique()将返回一个唯一值数组,因此我们必须使用它len()来计算它们的数量。
SELECT,WHERE,OR,AND,IN(带条件选择)
在第一部分之后,您学习了如何以简单的方式探索DataFrame。现在,让我们尝试在某些条件下执行此操作(这是
WHERESQL中的一条语句)。
如果我们只想从DataFrame中选择某些列,则可以使用一对额外的方括号。
注意:如果选择多列,则需要将数组
["name","age"]放在方括号内。
isin()的工作原理与INSQL查询完全相同。要使用NOT IN,在Python中我们需要使用否定(~)。
GROUP BY,ORDER BY,COUNT
GROUP BY并且ORDER BY也用于数据挖掘流行的SQL语句。现在,让我们尝试在Python中使用它们。
如果我们只想对一个COUNT列进行排序,则只需将一个布尔值传递给method即可
sort_values。如果要对多列进行排序,则必须将booleans数组传递给method sort_values。
该方法
sum()将返回DataFrame中每一列的总和,这些总和可以通过数字进行汇总。如果只需要特定的列,则需要使用方括号指定列名称。
MIN,MAX,MEAN,中位数
最后,让我们尝试一些在浏览数据时很重要的标准统计功能。
SQL不包含返回中值的运算符,因此我们使用BigQuery来获取age列的中值。在
APPROX_QUANTILES
Pandas中,聚合方法
.agg()还支持其他功能,例如sum。
您现在已经了解了如何使用Pandas在Python中重写SQL查询。希望本文对您有所帮助。
所有代码都可以在我的Github存储库中找到。
感谢您的关注!