Pandas框架,最专业的Python分析工具包。具体是怎么回事呢?今天番茄加速就来说一下。
Pandas有一个单独的数据操作模块,包括 15 个,全是设计上最顶层的函数。它们大致可以分类为:数据透视相关;数据分箱相关;多个数据表融合相关;分类变量的数值化相关。借助这 4 类函数可完成对数据的一些重要分析。下面依次介绍。
数据透视相关包括:melt, pivot, pivot_table, crosstab. melt 变换宽格式数据为长格式,通俗点说就是列数变少了,行数变多了。我们可以试着想想,如何实现。
数据分箱,是将连续值归类到对应的箱体中,提供了两种实现。cut 函数均分给定的一维数组的区间长度(最大值和最小值间距)为指定份数;qcut 函数是另一种装箱思路,根据数据样本出现的频次,均分成指定个数的箱体。这两个函数的必选参数包括:1维数组,箱体个数。
数据融合,至少涉及到两个数据表,根据指定索引或通过轴,关联两张表。通过索引关联的函数包括:merge, merge_ordered, merge_asof, 前两个通过精确相等的键关联,第三个通过近似相等键关联,通过轴连接的为 concat 函数,它在0轴或1轴上扩展数据。
分类变量的数值化,是指将枚举类变量转化为indicator向量或称dummy 向量。什么是indicator向量,看看如下例子,A变量解析为:[1,0,0], B解析为:[0,1,0].
s = pd.Series(list(‘ABCA’))
pd.get_dummies(s)
#结果
A B C
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
除get_dummies外,还有一个枚举类型变量标注化函数:factorize,功能如下:
labels, uniques = pd.factorize([‘A’, ‘B’, ‘C’, ‘A’])
#结果
labels为NumPy的ndarrays:
array([0, 1, 2, 0], dtype=int64)
uniques:
array([‘A’, ‘B’, ‘C’], dtype=object)
还有一个不属于以上4类的去重的顶层函数:unique,这个比较容易理解。不再赘述。