Pandas的索引操作
- Series和DataFrame中的索引都是Index对象
- 索引对象不可变,保证了数据的安全
常见的Index种类:
- Index索引
- Int64Index,整数索引
- MultiIndex,层级索引
- DatetimeInex,时间戳类型
变更索引:reindex
- Series:
- DataFrame:
增加索引:
- Series:
s1['a'] = 2
如果想要在不改变原有对象的基础上增加一个索引,需要使用append()
方法
s3= s1.append(s2)
- DataFrame:
如果仿照Series来给DataFrame赋值,默认是赋值给列
如果想要插入列到特定位置,需要使用insert()
方法:
增加行需要使用标签索引loc
:
loc:
或者使用append()
方法,来返回一个新的对象:
忽略原来的索引:
删除索引:
Series:
del s1['a']
DaraFrame:
这种方法只能删除列
del pd1['a']
方法二:
使用drop()
方法,这种方法不会影响原数据,而是会返回一个新的对象
s2 = s1.drop('b')
s2 = s1.drop(['a','c'])
对DataFrame使用该方法,默认删除的是行
pd2 = pd1.drop('b')
pd2 = pd1.drop(['a','c'])
如果想要删除列,需要指定axis = 1 / columns
pd2 = pd1.drop('b',axis = 1)
pd2 = pd1.drop('b',axis = 'columns')
如果想要直接在原对象上进行删除,可以设置inplace
属性:
pd2 = pd1.drop('b', inplace = True)
修改索引:
Series:
s1['a'] = 2 #使用标签索引
s1[0] = 2 #使用位置索引
DataFrame:
默认修改列
pd1['a'] = 2 # 默认修改列
pd1.a = 2
如果要修改行,需要使用loc标签索引
pd1.loc['a'] = 2
pd1.loc['a','A'] = 2
查找数据:
Series的数据查找数据的方式和narray差不多,唯一的区别是Series对象多了一个标签索引,其他的位置索引、切片索引、布尔索引等都相同
DataFrame:
pd1['a'] #选取一列
pd1[['a','b']] #选取多列
pd1['a']['A']# 选取一个值
pd1[:2]#取前两行
高级索引
- loc标签索引
loc是基于标签名的索引,自定义的索引名
- iloc位置索引:
标签索引包含后面一位,位置索引不包含