一招教你如何用pandas超越95%的数据同行

996之前,软件开发人员只要会使用少数几个技能或软件,你就能战胜同行业同职位的95%,如下技能:

  • Object-oriented

  • Scripting 语言

  • JavaScript

  • SQL.

当您需要快速浏览一些数据并得出初步结论时,最终可能产生编写报告或应用程序,SQL是首选工具。这称为探索性分析。

如今,数据以多种形式出现,并且不再仅仅与“关系数据库”同义。您可能最终会得到CSV文件,纯文本,Parquet,HDF5,等等吧。这同时也是 Pandas 大放异彩的地方。

1. 什么是 Pandas?

Python数据分析库(称为Pandas)是为数据分析和处理而构建的Python库。它是开源的,并由Anaconda支持。它特别适合结构化(表格)数据。欲获得更多信息: http://pandas.pydata.org/pandas-docs/stable/index.html.

2. 我们能用pandas做什么?

可以负责任的说:您之前在SQL中对数据进行的所有查询以及更多其他内容。或者更多!

3. 那么,我们如何开始学习呢?

对于那些习惯于用SQL术语表达数据问题的人来说,这可能会令人感到恐惧。因为使用SQL,您可以在几乎像英语的句子中声明想要的内容,的确太简单了。

Pandas的语法与SQL完全不同。在Pandas中,您可以对数据集应用操作并将其链接起来,以按照所需的方式变换和重塑数据。

所以呢,我们需要一个

我们将需要一本短语手册!

4. SQL查询的剖析

SQL查询由一些重要的关键字组成。在这些关键字之间,添加您想要查看的数据的详细信息。以下是没有细节的基本查询demo:

SELECT… FROM… WHERE…

GROUP BY… HAVING…

ORDER BY…

LIMIT… OFFSET…

或者还有其他术语,但是以上这些是最重要的。那么我们如何将这些术语翻译成pandas呢?

首先,我们需要将一些数据加载到Pandas中,因为它们尚未存储在数据库中。方法如下:

import pandas as pd
airports = pd.read_csv('data/airports.csv')
airport_freq = pd.read_csv('data/airport-frequencies.csv')
runways = pd.read_csv('data/runways.csv')

SELECT, WHERE, DISTINCT, LIMIT

这是一些SELECT语句。我们使用LIMIT截断结果,并使用WHERE过滤结果。我们使用DISTINCT删除重复的结果:

SELECT 多条件:

我们用&联接多个条件。如果我们只想要表中的列的子集,则该子集将应用在另一对方括号中。

ORDER BY

默认情况下,Pandas将按升序对事物进行排序。要扭转这种情况,请提供ascending = False

IN… NOT IN

我们知道如何根据值进行过滤,但是关于值列表-IN条件呢?在熊猫中,.isin()运算符的工作方式相同。要取消任何条件,请使用〜。

GROUP BY, COUNT, ORDER BY

分组很简单:使用.groupby()运算符。在SQL和Pandas中,COUNT的语义之间存在细微的差异。在Pandas中,count()将返回非null / NaN值的数量。要获得与SQL COUNT相同的结果,请使用.size()

下面,我们分组讨论多个领域。pandas默认情况下会在相同的字段列表中对事物进行排序,因此在第一个示例中不需要a.sort_values()。如果像第二个示例一样,我们想使用不同的字段来排序或使用DESC代替ASC,则必须明确:

.to_frame()和.reset_index()的技巧是什么?因为我们要按计算的字段(大小)进行排序,所以该字段需要成为DataFrame的一部分。在对Pandas进行分组之后,我们得到了另一种类型,称为GroupByObject。因此,我们需要将其转换回DataFrame。使用.reset_index(),我们为dataframe重新开始行编号。

下期将会将聚合函数与两表的联合查询,如 join ,merge,sum(),min()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值