📜  Pandas 指数

📅  最后修改于: 2020-10-29 03:14:29             🧑  作者: Mango

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”数据框。

例:

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