Pandas教程-Pandas 索引
            
            Pandas 索引被定义为从 DataFrame 中选择特定行和列数据的重要工具。它的任务是组织数据并提供快速访问数据的能力。它也可以称为子集选择。
索引中的值以粗体字体显示,索引的各个值称为标签。
如果我们想比较有和没有索引时的数据访问时间,可以使用%%timeit来比较各种访问操作所需的时间。
我们还可以将索引定义为通过它可以在整个 Series 或 DataFrame 中访问任何数据的地址。DataFrame 是三个不同组件的组合,即索引、列 和 数据。
轴和轴
轴被定义为一种通用术语,指的是行和列,而轴则是这些行和列的集合。
创建索引
首先,我们需要获取一个包含用于索引的一些数据的 csv 文件。
# importing pandas package   
import pandas as pd     
data = pd.read_csv("aa.csv")  
data  输出:
    Name             Hire Date    Salary      Leaves Remaining
0  John Idle          03/15/14    50000.0       10
1  Smith Gilliam      06/01/15    65000.0       8
2  Parker Chapman     05/12/14    45000.0       10
3  Jones Palin        11/01/13    70000.0       3
4  Terry Gilliam      08/12/14    48000.0       7
5   Michael Palin     05/23/13    66000.0       8示例1
# importing pandas package   
import pandas as pd     
# making data frame from csv file   
info = pd.read_csv("aa.csv", index_col ="Name")    
# retrieving multiple columns by indexing operator   
a = info[["Hire Date", "Salary"]]    
print(a)  输出:
    Name            Hire Date     Salary
0  John Idle         03/15/14     50000.0
1  Smith Gilliam     06/01/15     65000.0
2  Parker Chapman    05/12/14     45000.0
3  Jones Palin       11/01/13     70000.0
4  Terry Gilliam     08/12/14     48000.0
5  Michael Palin     05/23/13     66000.0示例2
# importing pandas package   
importpandas as pd   
    
# making data frame from csv file   
info =pd.read_csv("aa.csv", index_col ="Name")   
    
# retrieving columns by indexing operator   
a =info["Salary"]   
print(a)   输出:
     Name            Salary         
0  John Idle         50000.0 
1  Smith Gilliam     65000.0 
2  Parker Chapman    45000.0 
3  Jones Palin       70000.0 
4  Terry Gilliam     48000.0 
5   Michael Palin    66000.0 设置索引
'set_index' 用于使用现有列设置 DataFrame 的索引。索引可以替换现有索引,也可以扩展现有索引。
info = pd.DataFrame({'Name': ['Parker', 'Terry', 'Smith', 'William'],  
'Year': [2011, 2009, 2014, 2010],  
'Leaves': [10, 15, 9, 4]})  
info  
info.set_index('Name')  
info.set_index(['year', 'Name'])  
info.set_index([pd.Index([1, 2, 3, 4]), 'year'])  
a = pd.Series([1, 2, 3, 4])  
info.set_index([a, a**2])  输出:
            Name       Year    Leaves
1   1      Parker      2011     10
2   4      Terry       2009     15
3   9      Smith       2014     9 
4   16     William     2010     4多重索引
数据中还可以有多个索引。
示例1:
import pandas as pd  
import numpy as np  
pd.MultiIndex(levels=[[np.nan, None, pd.NaT, 128, 2]],   
codes=[[0, -1, 1, 2, 3, 4]])  输出:
MultiIndex(levels=[[nan, None, NaT, 128, 2]],
codes=[[0, -1, 1, 2, 3, 4]])重置索引
我们还可以使用 'reset_index' 命令重置索引。让我们再次查看 'cm' DataFrame。
示例:
info = pd.DataFrame([('William', 'C'),  
('Smith', 'Java'),  
('Parker', 'Python'),  
('Phill', np.nan)],  
index=[1, 2, 3, 4],  
columns=('name', 'Language'))  
info  
info.reset_index()  输出:
   index   name      Language
0    1      William     C
1    2      Smith      Java
2    3      Parker     Python
3    4      Phill      NaN