Pandas学习笔记二(Pandas对象的基本方法)
2017-07-17 15:06
239 查看
1.根据索引重排数据reindex
reindex是pandas对象的一个重要方法,该方法将返回当前对象经过新索引(序列型数据,如列表、元组、数组等)重排之后的一个副本。对Series对象使用reindex,若某个索引在当前对象中不存在,则引入缺失值NAN,或可使用fill_value设置缺失值的填充值,或可指定缺失值的填充方法method(向前填充ffill/pad,向后填充bfill/backfill)。
from pandas import Series, DataFrame import pandas as pd ob = Series(['a','b','c']) #默认索引0-2 ob1=ob.reindex(range(4), fill_value= 'd') #缺失值设置为'd' ob2=ob.reindex([2,3,0,1], method ='ffill') #前向填充 ob2[3]=ob2[2] 0b3=ob.reindex([2,3,0,1], method ='bfill') #后向填充 ob3[3]=ob3[4]=NAN
对DataFrame,reindex既可修改行索引,也可以修改列索引。
i. 若只传入一个序列,默认修改行索引
ii. 也可指定关键字columns对列索引进行重排
iii. 也可以同时对行索引和列索引进行重排,但填充方法method只能按行应用。
另外,利用DataFrame.ix标签索引功能也可以进行重排。
import numpy as np frame = DataFrame(np.arange(9).reshape((3,3)),index = ['a','c','d'], columns = ['A','B','C']) #使用数组生成DataFrame对象,指定行和列名 frame1 = frame.reindex(['a','b','c','d'], fill_value =0) #默认修改行索引,缺失值以0代替 frame2 = frame.reindex(columns=['A','C','D']) #指定修改列索引 frame3 = frame.reindex(index = ['a','b','c','d'], method = 'ffill', columns=['A','C','D']) #同时修改行索引和列索引 frame4 = frame.ix[['d','c','a'],['C','B','A']] #利用ix标签索引重排
2.丢弃指定行或列drop
使用drop方法传入一个索引数组或列表即可。方法原型:drop(self, labels, axis=0, level=None, inplace=False, errors=’raise’)
参数说明:
axis:默认值为0,对DataFrame即是默认删除指定行,指定axis=1则是删除指定列
inplace:表示是否直接在原数据中删除,值为False时,表示对原数据不做修改,但返回一个副本;值为True表示直接在原数据中修改,无返回值。
##对Series obj = Series(np.arange(4.), index = ['a','b','c','d']) new_obj = obj.drop('b') #删除索引为'b'的项 new_job1 = obj.drop(['c','b']) #删除多个项 obj.drop('b', inplace = 1) #原数据删除索引为'b'的项 ##只能删除存在的项,否则出错 ##对DateFrame,可删除任意轴(行或列)上的指定项 df = DataFrame(np.arange(16).reshape((4,4)),index =['A','B','C','D'], columns=['one','two','three','four']) df1 = data.drop(['A','C']) #删除指定的多个行 df2 = data.drop(['three','two'], axis =1) #删除指定的多个列 data_copy = df.copy() #复制,深复制 data_copy.drop('two',axis =1, inplace = True) #直接在data_copy上操作
相关文章推荐
- jquery对象的基本方法和属性--学习笔记
- 巴巴运动网学习笔记三之产品分类实体对象基本属性的JPA映射,用泛型技术对产品分类的业务管理Bean抽象,单元测试产品分类的业务管理Bean.,重载业务管理Bean的删除方法,
- Jquery学习笔记:获取jquery对象的基本方法
- Hibernate学习笔记---通过load和get方法来查询对象(只能根据主键来查询)
- 31 天重构学习笔记13. 提取方法对象
- asp.net笔记----Web开发的一些基本原则和一些对象方法,笔记有点乱!!
- 微软企业库4.1学习笔记(五)对象创建和依赖注入方法
- Hibernate学习笔记 merge()方法--add对象
- 【Javascript学习笔记】由JavaScript中call()方法引发的对面向对象继承机制call的思考
- 微软企业库4.1学习笔记(五)对象创建和依赖注入方法
- 用一个实例学习VBS中使用fso对象的基本方法
- Objective-C 2.0 学习笔记二(类、对象和方法)
- C#特性 学习笔记(对象初始化器 匿名类型 扩展方法)
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- cocos2d学习笔记1--基本对象
- [ADO学习笔记] Recordset 对象中的updateBatch函数的使用方法
- 反射学习笔记之动态创建对象和调用方法
- 学习笔记:病毒感染PE文件的基本方法
- C++ Primer学习笔记:基本编译方法
- php学习笔记------[php面向对象中常用关键字与魔术方法]