资源描述:
《科学计算与数据处理汇总课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、pandas—入门1目录pandas的数据结构介绍SeriesDataFrame索引对象基本功能重新索引丢弃指定轴上的项索引、选取和过滤算术运算和数据对齐函数应用和映射排序和排名带有重复值的轴索引2目录汇总和计算描述统计相关系数与协方差唯一值、值计数以及成员资格处理缺失数据滤除缺失数据填充缺失数据层次化索引重排分级顺序根据级别汇总统计使用DataFrame的列其他有关pandas的话题3pandas含有使数据分析工作变得更快更简单的高级数据结构和操作工具。它是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。因为
2、Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便。>>>frompandasimportSeries,DataFrame>>>importpandasaspd4pandas的数据结构介绍SeriesSeries是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的Series:>>>obj=Series([4,7,-5,3])>>>obj04172-533dtype:int645pandas的数据结构介绍Ser
3、ies的字符串表现形式为:索引在左边,值在右边。由于没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。可以通过Series的values和index属性获取其数组表示形式和索引对象:>>>obj.valuesarray([4,7,-5,3],dtype=int64)>>>obj.indexInt64Index([0,1,2,3],dtype='int64')6pandas的数据结构介绍通常希望所创建的Series带有一个可以对各个数据点进行标记的索引:>>>obj2=Series([4,7,-5
4、,3],index=['d','b','a','c'])>>>obj2d4b7a-5c3dtype:int64>>>obj2.indexIndex([u'd',u'b',u'a',u'c'],dtype='object')7pandas的数据结构介绍与普通NumPy数组相比,可以通过索引的方式选取Series中的单个或一组值:>>>obj2['a']-5>>>obj2['d']=6>>>obj2[['c','a','d']]c3a-5d6dtype:int648pandas的数据结构介绍NumPy数组运算(如根据布尔型数组进
5、行过滤、标量乘法、应用数学函数等)都会保留索引和值之间的链接:>>>obj2>>>obj2[obj2>0]>>>obj2*2>>>np.exp(obj2)d403.428793b1096.633158a0.006738c20.085537dtype:float649pandas的数据结构介绍还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。它可以用在许多原本需要字典参数的函数中:>>>'b'inobj2True>>>'e'inobj2False10pandas的数据结构介绍如果数据被存放在一个P
6、ython字典中,也可以直接通过这个字典来创建Series:>>>sdata={'Ohio':35000,'Texas':71000,'Oregon':16000,'Utah':5000}>>>obj3=Series(sdata)>>>obj3Ohio35000Oregon16000Texas71000Utah5000dtype:int6411pandas的数据结构介绍如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。在例子中,sdata跟states索引相匹配的那3个值会被找出来并放到相应的位置上,
7、但由于“California”所对应的sdata值找不到,所以其结果就为NaN(即“非数字”(notanumber)).>>>states=['California','Ohio','Oregon','Texas']>>>obj4=Series(sdata,index=states)>>>obj4CaliforniaNaNOhio35000Oregon16000Texas71000dtype:float6412pandas的数据结构介绍在pandas中使用NaN表示缺失(missing)或NA值。pandas的isnull和
8、notnull函数可用于检测缺失数据:>>>pd.isnull(obj4)#Series也有类似的实例方法:CaliforniaTrue#obj4.isnull()OhioFalseOregonFalseTexasFalsedtype:bool>>>pd.notnull(obj4)Cali