熊猫入门强大的Python数据分析工具包
1.简介
大熊猫
首先,Pandas是用于数据分析的开源Python库。它包含数据处理和数据结构工具,这些工具旨在生成类似于电子表格的数据,以便在Python中快速,轻松地进行加载,操作,合并,清理以及其他功能。它通常与scikit-learn等分析库,matplotlib等数据可视化库以及NumPy和SciPy等数值计算工具一起使用。
1.1熊猫数据结构简介
Pandas向Python引入了新的数据类型:Series和DataFrame。这两个主力数据结构并不是针对每个问题的通用解决方案,但它们为大多数应用程序提供了坚实的基础。该数据帧代表整个电子表格或数据的retangular表,而该系列的是一列数据帧。
系列
系列是一维类似数组的对象,包含一个值序列和一个关联的数据标签数组,称为其索引。它类似于内置的Python 列表。
这是数据数组的示例。
数据数组
这是系列的字符串表示形式。它显示在左边的指数和右边的值。我们尚未指定索引,因此将创建一个默认索引。您可以分别通过其值和索引属性获得Series的数组表示形式和索引对象:
数组表示和索引对象
您可以创建一个带有指向每个数据的标签的系列:
带标签的数组表示
此外,选择单个值或一组值时,可以在索引中使用标签:
一个值和一组值
另外,我们可以使用NumPy函数或类似NumPy的操作,例如标量乘法,使用布尔数组过滤或应用数学函数,这些操作将保留索引值链接:
NumPy函数和类似NumPy的操作
我们可以将Series用作专业词典。字典是将任意键映射到一组任意值的结构,而Series是将已键入键映射到一组类型值的结构。
通过直接从Python字典构造一个Series对象,我们可以使“ 按字典分类”的类比更加清晰:
系列作为字典
默认情况下,将创建一个Series,其中从排序的键中提取索引。从这里,可以执行典型的字典式项目访问:
但是,与字典不同,该系列还支持数组式操作,例如切片:
当您仅传递字典时,所得系列中的索引将按排序顺序排列字典的键。您可以通过按希望它们在结果系列中出现的顺序传递dict键来覆盖此设置:
覆写
由于“柏林”没有值,因此显示为NaN(非数字)。
现在,您可以使用isnull和notnull函数检测丢失的数据。
虚函数和非虚函数
系列还具有以下作为实例方法:
对于算术运算,系列功能会根据索引名称自动对齐。此外,系列对象本身及其索引都具有名称属性:
数据框
首先,让我们澄清一下术语DataFrame。
在Pandas中,它是带有标记轴(行和列)的两个维度的大小可变的,可能是异构的表格数据结构。算术运算在行和列标签上对齐。可以作为Series对象的类似dict的容器来使用。在后台,数据存储为一个或多个二维块,而不是列表,字典或其他一些一维数组的集合。
数据框架
数据帧函数data.frame()创建数据帧,紧密耦合的变量集合,这些变量共享许多…
www.rdocumentation.org
让我们来看看这个。
让我们首先构造一个新的系列,列出前面讨论的四个州的面积。现在我们有了上面的人口系列,我们可以使用字典来构造一个包含此信息的二维对象:
现在我们可以通过DataFrame的index属性访问索引标签.DataFrame还有一个column属性,这是一个包含列标签的索引对象。
索引属性
因此,可以将DataFrame视为二维NumPy数组的一般化,其中行和列均具有用于访问数据的一般化索引。
我们还可以将DataFrame视为字典的一种特殊形式。该数据帧一个映射列名的系列列数据,其中一个字典映射一个键的值。现在我们得到Series对象:
制图
注意: 对于DataFrame,data ['col0']将返回第一列。在二维NumPy数组中,data [0]将返回第一列。虽然DataFrame在物理上是二维的,但您可以使用它以表格格式表示更高维的数据,并使用层次化索引(也称为multi-indexing)在单个索引中合并多个索引级别。分层索引是更常见的做法,但Pandas还提供Panel和Panel4d 处理三维和三维数据的对象。
我们可以通过多种方式构造DataFrame对象。
从词典列表
从单个Series对象
从系列对象的字典中
从二维NumPy数组
从NumPy结构化数组
从词典列表
从单个Series对象
从系列对象的字典中
从二维NumPy数组
从NumPy结构化数组
这是熊猫数据分析的简短介绍。要进一步阅读,您可以从Wes McKinney撰写的O'Reilly Python for Data Analysis,第二版中获得这本书。此外,您绝对应该浏览参考,当然也可以尝试一下。