Code前端首页关于Code前端联系我们

Python数据分析工具教程:numpy和熊猫

terry 2年前 (2023-09-25) 阅读数 50 #后端开发

数据分析不能错过的三个包是numpy、scipy和熊猫。numpy是Python的数值计算扩展,专门用于处理矩阵。运营效率比上市还要高效。scipy是一个基于numpy的科学计算包,包括统计、线性代数等工具。 Pandas是一个基于numpy的数据分析工具,可以让操作大数据集变得更加简单。以下章节主要关注 pandas。

numpy和熊猫

numpy的数据结构是一个n维数组对象,称为ndarray。虽然Python列表也可以写,但是效率很低。随着列表数据的增加,效率降低。

先加载numpy包,因为是第三方工具,所以每次使用前都必须在代码中加载。是方便调用的别名,np是儒家约定俗成的缩写。

Python数据分析工具教程:numpy和pandas
使用numpy中的数组函数创建数组。新手应该记得加上np。我们将系统提供的列表转换为numpy中的数组。

Python数据分析工具教程:numpy和pandas

嵌套列表将被转换为多维数组,也可以称为矩阵。

Array数组需要注意的是里面的元素必须是同一类型,比如数字或者字符串。您可以使用 dtype 来查询类型,而无需添加括号。

Python数据分析工具教程:numpy和pandas

numpy拥有丰富的数据类型,包括int8、int16、int32等。但该区域更接近计算机底层,用于数据分析的用途并不多。当我们想要改变数据格式时,可以使用astype函数。

Python数据分析工具教程:numpy和pandas

数组计算非常方便,无需多次循环即可批量操作。

Python数据分析工具教程:numpy和pandas

数组索引与列表相同。可以通过方括号和数字进行选择,也可以直接指定值。

Python数据分析工具教程:numpy和pandas

多维数组可以递归过滤。如果省略后续索引,则返回下一级维度,与列表相同。

Python数据分析工具教程:numpy和pandas

除了上面的基本操作之外,numpy还有reshape、T transpose、ufunc、sort等功能,功能强大。大家可以查阅文档进行自己的学习。我不会在这里花时间解释它们。对于数据分析师来说,pandas 是更常用的包。从抽象概念上来说,它更接近于我们熟悉的excel和sql,也是最重要的分析工具。

pandas 有两种主要的数据结构,Series 和 DataFrame。记住要区分大小写字母。下次使用就不会再有提醒了。系列类似于一维数组,接近numpy数组,由一组数据和数据标签组成。数据标签成为索引。

Python数据分析工具教程:numpy和pandas

加载pandas包并通过Series函数生​​成对象。我们可以明显看到jupyter中的样式和数组不同,它是垂直的。右边是我们输入的数据集,左边是数据索引,也就是标签。数据标签是区分熊猫和numpy的重要特征。

索引不必是从0开始的数字,可以定义。

Python数据分析工具教程:numpy和pandas

索引的概念有点类似于SQL主键,但它的功能更强大。分析师可以通过索引轻松选择数据或数据组。索引功能

Python数据分析工具教程:numpy和pandas

可以显示Series的索引。系列与数组一样,通过方括号选择数据。当要选择某些数据时,必须使用列表来表示某些索引,因此第三种情况有两层嵌套的方括号。

如果数据是字典,您还可以直接从该字典创建Series。

Python数据分析工具教程:numpy和pandas

此时,字典键就是Series索引。

Python数据分析工具教程:numpy和pandas

该系列具有自动对准分度功能。当qinqin的自定义索引和字典成员不可用时,会自动选择NaN,即结果为空,表示缺失。缺失值的处理稍后会解释。

DataFrame

Series 是一种一维数据结构。 DataFrame 是一个表数据结构。它包含不同的列,每列都是不同的数据类型。我们可以将 DataFrame 视为由 Series 组成的字典,Series 具有行索引和列索引。更清楚地可视化它,它类似于 Excel 或 SQL 表格,只是更强大。

构造DataFrame的方式有很多种,最常用的是传入字典。

Python数据分析工具教程:numpy和pandas

DataFrame 会自动添加索引,并使用字典键作为列标签,即列。这里,dict键的顺序是DataFame顺序,不再是无序的。

在DataFrame中,可以通过info函数直接看到数据类型和统计信息。

Python数据分析工具教程:numpy和pandas

Python数据分析工具教程:numpy和pandas

DataFrame数据类型变化和numpy类似,只使用astype,记得指定值。 df.age = df.age.astype,图片只是一个例子,数据类型实际上没有改变。

DataFrame索引方式和Series一样,选择一列。

Python数据分析工具教程:numpy和pandas

返回一组Series,索引与原始DataFrame相同。除了方括号选择之外,DataFrame还有更简单的选择方法。行

Python数据分析工具教程:numpy和pandas

也可以使用索引列ix按位置获得。

Python数据分析工具教程:numpy和pandas

第二种方法不需要调用ix,而是直接以切片的形式获取行。切片的使用与数组类似。请注意,切片不能按单个数字选择,只能用点选择多个切片。

可以通过任务编辑和添加字段。当列名是新的时,新列将自动添加到 DataFrame 的右侧。

Python数据分析工具教程:numpy和pandas
Python数据分析工具教程:numpy和pandas

列表和数组都可以分配给列。长度应该匹配。按顺序列出。对于数组来说,它们可以匹配index参数设置的索引。如果为空,则填写缺失值。

DataFrame 索引无法更改。这是为了数据安全,但我们可以通过索引函数检索详细信息。

Python数据分析工具教程:numpy和pandas

DataFrame 对于选择数据非常强大。

Python数据分析工具教程:numpy和pandas

支持常用的逻辑推理。在示例中,最后两个数据选择通过布尔数组过滤所需的结果。

Python数据分析工具教程:numpy和pandas

df.sex == 'Male' 返回一个布尔数组(记住,是两个等号,一个等号是一个任务),然后通过布尔查找 df 中符合真实条件的结果。结构。

现在我们想找一个年龄在20岁以下,性别为男性的人。

Python数据分析工具教程:numpy和pandas

这里使用的是Boolean类型数据的计算公式,true与true为真,false与true为假。 pandas 中的逻辑符号是 & 或 |。接下来,过滤掉女性或18岁以上的人。

Python数据分析工具教程:numpy和pandas

如果逻辑条件复杂,这种写法就不优雅。例如,如果性别为男性,年龄为18岁,而性别为女性,年龄超过18岁,则过滤情况就比较复杂。 。在pandas中,你可以使用查询函数来执行SQL等语言的查询。列名可以直接在查询中使用

Python数据分析工具教程:numpy和pandas

。它的功能远不止于此。如果您有兴趣,可以详细了解一下。

Python数据分析工具教程:numpy和pandas

DataFrame可以直接对列进行操作。 DataFrame与DataFrame之间进行运算时,通过索引进行加减乘除。

Python数据分析工具教程:numpy和pandas

如果使用直接加法,如果列名不匹配,会生成缺失的NaN值,我们可以稍后用fillna函数填充。另一种方法是add函数,可以通过参数选择直接填写值。减法、乘法和除法对应于sub、mul和div。

DataFrame还有两个常用的函数,最容易混淆的是iloc和loc。

Python数据分析工具教程:numpy和pandas

所有按索引选择行。 iloc 使用行号作为索引,loc 使用行标签作为索引。简单来说,iloc是行,loc是标签。当索引未标记时,loc 和 iloc 相同。两者都支持多点选择。上面提到的

Ix是两者的混合,可以是行号,也可以是行索引。

如果必须同时选择行和列,请用逗号分隔。逗号之前的行是要选择的行,逗号之后的列是要选择的列。

Python数据分析工具教程:numpy和pandas

完整的形式是ix[行1:行2,列1:列2],iloc和loc也支持同时选择行和列,方法相同。新来的人很容易对这个区域感到困惑。可以进行后续联系。

如果你想提高对这个话题的理解,除了敲代码之外,你还可以阅读《使用Python进行数据分析》,一本非常经典的入门书(有些内容有点老了)。您还可以练习使用工作报告。

至此,numpy和熊猫的基础知识就讲得差不多了。更深入的应用,就让我们用实战来完成吧!在下一章中,我们将利用大家都知道的实践数据,实用地完成数据分析。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门