2020-12-22

在这里插入图片描述
第三章、索引
一、索引器
1、表的列索引
形式:变量名[列名]或变量名.列名(列名中不含空格) –>取一列时
变量名[列名组成的列表]

In:import numpy as np
In:import pandas as pd
In:df=pd.read_csv('data/learn_pandas.csv',usecols=['School','Grade','Name','Gender','Weight','Transfer'])
In:df['Name'].head()
Out:
0     GaopengYang
1    ChangqiangYou
2            MeiSun
3      XiaojuanSun
4       GaojuanYou
Name:Name,dtype:object
df[['Gender','Name']].head()     
     Gender    Name
0    Female    GaopengYang
1    Male     ChangqiangYou
2    Male            MeiSun
3    Female     XiaojuanSun
4    Male        GaojuanYou
df.Name.head()
0      GaopengYang
1    ChangqiangYou
2           MeiSun
3      XiaojuanSun
4       GaojuanYou
Name:Name,dtype:object

2、序列的行索引
【a】以字符串为索引的Series
【b】以整数为索引的Series
3、loc索引器
(1)loc索引器一般形式:loc[,],其中第一个代表行的选择,第二个代表列,的位置一共有五类合法对象,分别是:
单个元素、
元素列表、
元素切片、
布尔列表
函数,
4、iloc索引器
iloc的使用与loc完全类似,只不过是针对位置进行筛选,在相应的
位置处一共也有五类合法对象,分别是:整数、整数列表、整数切片、布尔列表以及函数。
(3)query方法
(4)随机抽样:(sample函数)
对样本或特征进行随机抽样就可以用sample函数。sample函数中的主要参数为n,axis,frac,replace,weights,前三个分别是指抽样数量、抽样的方向(0为行、1为列)和抽样比例(0.3则为从总体中抽出30%的样本)。replace和weights分别是指是否放回和每个样本的抽样相对概率,当replace=True则表示有放回抽样。
例如,对下面构造的df_sample以value值的相对大小为抽样概率进行有放回抽样,抽样数量为3。

In[64]:df_sample=pd.DataFrame({'id':list('abcde'),'value':[1,2,3,4,90]})
In[65]:df_sample
Out[65]:     
id value
0    a       1
1    b       2
2    c       3
3    d       4
4    e      90
In[66]:df_sample.sample(3,replace=True,weights=df_sample.value)
Out[66]:    
    id    value
4   e        90
4   e        90
4   e        90

4、多级索引及其表的结构
多级索引中的loc索引器:之前在第一节介绍的loc和iloc方法完全可以照搬,只需把标量的位置替换成对应的元组,不过在索引前最好对MultiIndex进行排序以避免性能警告:
5、IndexSlice对象
slice对象一共有两种形式,
第一种loc[idx[,]]型,
第二种为loc[idx[,],idx[,]]型,
6、多级索引的构造
常用的有
from_tuples:指根据传入由元组组成的列表进行构造
from_arrays:指根据传入列表中,对应层的列表进行构造
from_product:指根据给定多个列表的笛卡尔积进行构造
三种方法,它们都是pd.MultiIndex对象下的函数。
7、索引的常用方法
索引层的交换和删除索引层的交换由swaplevel和reorder_levels完成,前者只能交换两个层,而后者可以交换任意层,两者都可以指定交换的是轴是哪一个,即行索引或列索引:
若想要删除某一层的索引,可以使用droplevel方法:
8、索引属性的修改
通过rename_axis可以对索引层的名字进行修改,常用的修改方式是传入字典的映射:通过rename可以对索引的值进行修改,如果是多级索引需要指定修改的层号level:
9、索引的设置与重置
索引的设置可以使用 set_index 完成,这里的主要参数是 append ,表示是否来保留原来的索引,直接把新设定的添加到原索引的内层:
set_index的逆函数reset_index


In [148]: df_new = pd.DataFrame({'A':list('aacd'),
                'B':list('PQRT'), 'C':[1,2,3,4]})  
In [149]: df_new
Out[149]:    
   A  B  C
0  a  P  1
1  a  Q  2
2  c  R  3
3  d  T  4
In [150]: df_new.set_index('A')
Out[150]:    
   B  C
A      
a  P  1
a  Q  2
c  R  3
d  T  4
In [151]: df_new.set_index('A', append=True)
Out[151]:      
      B  C  
   A     
 0 a  P  1
 1 a  Q  2
 2 c  R  3
 3 d  T  4

10、索引的变形
所用函数有:reindex,reindex_like
11、索引运算

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值