1.Series和DataFrame中的索引都是Index对象
2.索引对象不可
二.索引的基本操作
1.重新索引
2.增
3.删
4.改
5.查
#2.1 reindex 创建一个符合新索引的对象
pd1=pd.DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['A','B','C'])
pd1
#行索引重建
pd2=pd1.reindex(['a','b','c','d'])
pd2
#列索引重建
pd2=pd1.reindex(columns=['C','B','A'])
pd2
#2.2 增
#增加列
pd1['D']=[9,10,11]
pd1
#将增加的列插入第一列
pd1.insert(0,'E',1)#一列全部是1
pd1.insert(0,'F',[9,99,999])
pd1
#增加行
pd1.loc['d']=1
pd1.loc['d']=[1,1,1,1,1,1]
pd1
#删 del(直接删除) drop
del pd1['A']
pd1
del pd1['b'] #报错----del只能删除列
#drop 删除轴上数据,删除一条
pd1=pd1.drop('a')
pd1
pd3=pd1.drop(['a','c'])#删除多条
pd3
#删除列 # axis=1是列 向下\ axis=0(默认)
pd1=pd1.drop('B',axis=1)
pd1
pd1=pd1.drop('B',axis='columns')
pd1
#inplace属性 在原对象上删除,不会返回新的对象
pd1.drop('F',axis=1,inplace=True)
pd1
#改
pd1['A']=[1,2,3]
pd1
#增加列,不是修改行
pd1['a']=1
pd1
#修改行数据-loc标签索引
pd1.loc['a']=777
pd1
pd1.loc['a']=[1,2,3,4]
pd1
#单个赋值
pd1.loc['a','A']=1000
pd1
#查
#1.列索引查看
pd1['A']
#取多列
pd1[['A','C']]
#选取一个值
pd1['A']['a']
#切片索引
pd1[:2] #获取的是行
#高级索引
#1.loc标签索引
#2.iloc位置索引
pd1.loc['a':'b','A':'C']
#2.iloc位置索引(骨头不顾尾)
ps1[1:3]
pd1.iloc[0:2,0:3]
#布尔索引
pd1>2
pd1[pd1>2]
变,保证了数据的安全