python数据分析pandas包入门学习(二)基本功能

本文参考《利用Python进行数据分析》的第五章 pandas入门

2基本功能
介绍操作Series和DataFrame中的数据的基本手段。
重新索引reindex
当调用Series的reindex将会根据新索引进行重排;当某个索引值当前不存在,就引入缺失值;fill_value可以给缺失值赋值。
python数据分析pandas包入门学习(二)基本功能_第1张图片 python数据分析pandas包入门学习(二)基本功能_第2张图片

method选项:

python数据分析pandas包入门学习(二)基本功能_第3张图片

python数据分析pandas包入门学习(二)基本功能_第4张图片

对于DataFrame,reindex可以修改索引(行)、列,或者两个都修改。如果只传入一个序列,则会修改索引(行):
python数据分析pandas包入门学习(二)基本功能_第5张图片

也可以使用ix()进行重新索引,比reindex更简洁:

python数据分析pandas包入门学习(二)基本功能_第6张图片

丢弃指定轴上的项drop()
python数据分析pandas包入门学习(二)基本功能_第7张图片

python数据分析pandas包入门学习(二)基本功能_第8张图片

索引、选取和过滤
两种方式进行索引:普通的python切片&利用标签切片
对Series进行索引:
python数据分析pandas包入门学习(二)基本功能_第9张图片

注意:利用标签切片运算与普通的Python切片运算不同,其末端是包含的:
python数据分析pandas包入门学习(二)基本功能_第10张图片

对DataFrame进行索引就是获取一个或多个列:
python数据分析pandas包入门学习(二)基本功能_第11张图片

通过切片或布尔型数组选取行:
python数据分析pandas包入门学习(二)基本功能_第12张图片

通过布尔型DataFrame进行索引:
python数据分析pandas包入门学习(二)基本功能_第13张图片

也可以通过ix从DataFrame中选取行和列的子集:
python数据分析pandas包入门学习(二)基本功能_第14张图片

可以看到,pandas对象中的数据的选取和重排方式很多。下表简单总结了针对DataFrame数据的选取和重排方式:
python数据分析pandas包入门学习(二)基本功能_第15张图片

python数据分析pandas包入门学习(二)基本功能_第16张图片

算术运算和数据对齐
pandas最重要的一个功能是,可以对不同索引的对象进行算术运算。
python数据分析pandas包入门学习(二)基本功能_第17张图片

对DataFrame,同时发生在行和列上:
python数据分析pandas包入门学习(二)基本功能_第18张图片

在算术方法中填充值
当索引无法配对时填充一个特殊值(如0)

python数据分析pandas包入门学习(二)基本功能_第19张图片

类似的,在对Series和DataFrame重新索引时,也可以指定一个填充值:
python数据分析pandas包入门学习(二)基本功能_第20张图片

python数据分析pandas包入门学习(二)基本功能_第21张图片

DataFrame和Series之间的运算
先看一个二维数组与其某行只差:
python数据分析pandas包入门学习(二)基本功能_第22张图片 python数据分析pandas包入门学习(二)基本功能_第23张图片


DataFrame和Series之间的运算也差不多:
python数据分析pandas包入门学习(二)基本功能_第24张图片

如果某个索引值在DataFrame的列或Series的索引中找不到,则两个对象会被重新索引成并集,并在没有匹配的索引中插入NaN值
python数据分析pandas包入门学习(二)基本功能_第25张图片

DataFrame列上的操作,加上axis=0:
python数据分析pandas包入门学习(二)基本功能_第26张图片


函数应用和映射
numpy的nfuncs(元素级数组方法)也可用于操作pandas对象:
python数据分析pandas包入门学习(二)基本功能_第27张图片

一种常见的操作是,将函数应用到各列或行,得到一维数组,可通过apply()方法实现:
python数据分析pandas包入门学习(二)基本功能_第28张图片

除标量外,传递给apply的函数还可以返回由多个值组成的Series:
python数据分析pandas包入门学习(二)基本功能_第29张图片

此外,元素级的PYTHON函数可是可用的,例如你想把frame中各个浮点值的格式化字符串,可使用
applymap()方法:
python数据分析pandas包入门学习(二)基本功能_第30张图片
应用于Series时则是map()方法:
python数据分析pandas包入门学习(二)基本功能_第31张图片
排序和排名
sort_index() :对行或列索引进行排序:
对于Series
对于DataFrame
python数据分析pandas包入门学习(二)基本功能_第32张图片

对于DataFrame
python数据分析pandas包入门学习(二)基本功能_第33张图片

默认为升序,通过如下设置,可降序排序:
python数据分析pandas包入门学习(二)基本功能_第34张图片

sort_index(by=) :根据一个或多个列中的值进行排序:
python数据分析pandas包入门学习(二)基本功能_第35张图片

order() :Series按值排序,NaN默认被放到末尾
python数据分析pandas包入门学习(二)基本功能_第36张图片

rank():排名,增设一个排名值,从1开始
默认情况下,并列的会分配一个平均值作为排名:
python数据分析pandas包入门学习(二)基本功能_第37张图片

python数据分析pandas包入门学习(二)基本功能_第38张图片

也可根据值在元数据中出现的顺序给出排名:

python数据分析pandas包入门学习(二)基本功能_第39张图片

使用降序,则加上ascending=False
python数据分析pandas包入门学习(二)基本功能_第40张图片

method选项:
python数据分析pandas包入门学习(二)基本功能_第41张图片

对于DataFrame,则由axis来控制对行排名或列排名:
python数据分析pandas包入门学习(二)基本功能_第42张图片

带有重复值的轴索引
虽然许多Pandas的函数(如reindex)都要求标签唯一,但也有索引不唯一的情况:
python数据分析pandas包入门学习(二)基本功能_第43张图片

索引的is_unique属性可以告诉你索引值是否唯一:

数据选取时,索引对应多个值,则返回一个Series;对应单个则返回一个标量:


对于DataFrame也一样:
python数据分析pandas包入门学习(二)基本功能_第44张图片


你可能感兴趣的:(python数据分析pandas包入门学习(二)基本功能)