介绍
Pandas正确来说应该是(panel data & Data Analysis)使目前基于Numpy,专用于数据预处理和数据分析的Python第三方库,最适合处理大型结构化表格数据。
其中:
Series 一维,带标签数组
DataFrame 二维,Series容器,最常用
Panel 三维,DataFrame容器
类似之前numpy函数中的例子,对于Python自带数据类型,其特点大多为:功能简单,操作复杂,效率低,且不利于处理数据结构和扩展数据类型。在实用性和功能上来说可操作性比较上来说较弱,大体可以理解为list < ndarray < Series/DataFrame 所以在日常使用中 pandas包作为必要的数组补充,大部分数据都建议尽量使用pandas的数据类型。
Pandas是python的一个数据分析包,最初由AQRCapital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
开发pandas时提出的需求:
具备按轴自动或显式数据对齐功能的数据结构
集成时间序列功能
既能处理时间序列数据也能处理非时间序列数据的数据结构
数学运算和约简(比如对某个轴求和)可以根据不同的元数据(轴编号)执行
灵活处理缺失数据
合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算
数据结构 Series以及DataFrame:
Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同 的值类型(数值、字符串、布尔值等)。
series 的例子 :
ser1 = Series([1,2,3,4])
In : ser1
Out:
0 1
1 2
2 3
3 4
dtype: int64
也可以通过字典来创建Series对象
In : sdata = {'Ohio': 35000, 'Texas':71000, 'Oregon': 16000, 'Utah': 5000}
In : ser3 = Series(sdata)
In : ser3
Out:
Ohio 35000
Oregon 16000
Texas 71000
Utah 5000
dtype: int64
数据结构 DataFrame总结:
可以输入给DataFrame构造器的数据:
二维ndarray 数据矩阵,还可以传入行标和列标。
由数组、列表或元组组成的字典 每个序列会变成DataFrame的一列,所有序列的长度必须相同。
NumPy的结构化/记录数组 类似于“由数组组成的字典”
由Series组成的字典 每个Series会组成一列。如果没有显示指定索引,则各Series的索引会被合并成结果的行索引。
由字典组成的字典 各内层字典会成为一列。键会被合并成结果的行索引,跟“由Series组成的字典”的情况一样。
字典或Series的列表 各项将会成为DataFrame的一行。字典键或Series索引的并集将会成为DataFrame的列 标。
由列表或元组组成的列表 类似于“二维ndarray”
另一个DataFrame 该DataFrame的索引将会被沿用,除非显示指定了其他索引。
NumPy的MaskedArray 类似于“二维ndarray”的情况,只是掩码值在结果DataFrame会变成NA/缺失值
pandas中主要的index对象总结 :
index 最泛化的Index对象,将轴标签为一个由Python对象组成的NumPy数组。
Int64Index 针对整数的特殊Index
MultiIndex “层次化”索引对象,表示单个轴上的多层索引。可以看做由园数组组成的数 组。
DatetimeIndex 存储纳秒级时间戳
PeriodIndex 针对Period数据的特殊Index
总结:pandas是一个框架比较清晰,操作没那么复杂但是很实用的东西。在numpy的基础上专注于字典形式的数据创建和实用的index传参。使用起来也很方便,了解series和dataframe就会很容易理解总体数据的构成形式。是非常适用于常规使用的data包。
往期「精彩内容」,点击回顾
精彩会议及课程,点击回顾
CEPI感谢您的支持!
(IOS系统用户专用通道)