pandas 索引设置-学习笔记

index 设置的区别

  1. df.index=,series.index=
  2. df.index.name= df.coulmns.name=
  3. df.reindex,series.reindex
  4. df.set_index.df.reset_index
  5. df.rename()# 字典函数的形势
  6. df.take()#随机抽取
  7. df.swaplevel()# 调换索引层次顺序
1. df.index=,s1.index= 都只是对index的名字改变一下,不会改变里面的数据。
import numpy as np
import pandas as pd
data =np.arange(10)
index=list('abcdefghij')
s1=Pd.Series(data,index=index)
print(s1)
s1.index=('fghijabcd')#长度必须要一致
print(s1)

运行结果:只是改变了里面index的顺序,不会改变内部数序排序。

2. df.reindex ,s1.reindex 其实就是对index的进行删选,增加或删除, 删除的话可以切片直接做的、但是,增加的,可以对空值进行填充。
frame=pd.DataFrame(np.random.randn(3,3),index=list('abc'),columns=['ohio','texas','california'])
frame.reindex(index=['a','b'],columns=['ohio','california'])
3. df.set_index,reset_index,这个就是将其中一列或多列数据转化为index,直接转化就可以 对用于多重索引。
frame=DataFrame({'a':range(7),'b':range(7,0,-1),
                'c':['one','one','one','two','two','two','two'],
                'd':[0,1,2,0,1,2,3]})
frame.index=list('abcdefg')
frame2=frame.set_index(['c','d'])#将c和d设为索引
frame2.reset_index('c')#将c 恢复为正常的列
4.索引改名

df.index=list()
df.coulumns=list()
这种方式改名,要求新的长度要和原来的一样,很不方便。

df.rename(index={:},columns=),字典形式,可以对部分索引名字进行修改 也可以用index=str.upper,lower,title 等进行处理,相对比较灵活。

frame.index=list('hijklmn')
frame2=frame.set_index('c')
frame2.rename(index=str.title,columns=str.upper)
frame2.rename(index={'one':'cici'},inplace=True)###rename可以改变部分index ,比较灵活
5. df.take(index.values[:n]),随机选取一定的数据,打乱数据在选取,那条数据 最好里面有随机生成的序列,防止出错。可以随意取行列 也可以用reindex。

sampler=np.random.permutaition(len(df))
df2=df.reindex(sampler[:n])
x=df.index.values np.random.shuffle(x) 再用df.take,或者reindex()即可。

#df.take()
df=DataFrame(np.arange(20).reshape(5,4))
sampler=np.random.permutation(len(df))
df.take(sampler)
#df.reindex
df.reindex(sampler[:n])
import random
n=2
x=df.index.values
x=np.random.shuffle(x)
df.take(x)
df.redindex(x[:n])
6 层次化索引,及索引次序对调
x=list('aaabbbccdd')
data=Series(np.random.randn(10),index=[x,[1,2,3,1,2,3,1,2,2,3]])#层次化索引
data.index.names=['key1','key2']
data.columns.name=['state']
data.swaplevel('key1','key2').sort_index(level=1)#对调层次索引的次序,并按level1的索引排序
7 依据索引的插入和删除操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值