pandas是python的第三方库,它是一个基于numpy的,用于数据分析的库;
但前面也提到过:numpy也是用于数据分析的库,这两者有何区别?请看下图:
说的简单一些,numpy更侧重于将数据存储成多维数组,以及这些数组维度的改变。而pandas侧重于数据的实际使用,而不是数组的维度结构
pandas的引用方法如下:
import pandas as pd
pandas库提供了自己的数据类型,同时也提供了很多数据分析的工具
主要的数据类型:Series,DataFrame
主要的数据操作:基本操作,运算操作,特征类操作,关联类操作
这些类型与方法,会在后文一一讲解。
更强大的一维数组---------Series
复习一下python中的数组
a=[5,,6,7,8,9]
上面的代码,创建了一个a数组,每个数组元素都有默认的数字作为索引,例如a[1]=5,a[2]=6;
而pandas中的series也用于创建一维数组,例如:
b=pd.series([5,6,7,8,9])
print(b)
输出结果如下:
可以看到,左边一列是下标索引,右边则是对应的元素。
可这样和python基本的数组有何区别?为何会叫Series更强大的一维数组?
强大之处,在于这个索引值可以自定义
同样是刚才的代码,稍作修改:
b=pd.Series([5,6,7,8,9],index=['a','b','c','d','e'])
print(b)
这里是输出:
可以看到,利用index属性,可以方便的改变索引值,和python基本类型的字典类似
实际上,Series在自定义索引后,仍然保留了自动生成的数字索引
b=pd.Series([5,6,7,8,9],index=['a','b','c','d','e'])
print(b[1])#默认的数字索引
print('-------')
print(b['b'])#自定义索引
print('------')
结果:
可以看到,利用上面两种方法,均可以获取Series的值,但是,不允许数字索引和自定义索引混用,如:print(b[‘b’,‘c’,0]),这种方法会报错
上面的程序中,我们使用python的列表创建了series变量,实际上以下几种类型均可以创建series:
- python列表
- 标量值
- python字典
- ndarray(numpy中的类型)
- 其他函数
分别举例:
a=pd.Series([1,2,3,4,5])#list
b=pd.Series(25,index=['a','b','c'])#标量
c=pd.Series({
'a':1,'b':2,'c':3,'d':4})#字典之一
d=pd.Series({
'a':1,'b':2,'c':3,'d':4},index=['c','b','a','d'