Pandas 操作索引

2022-07-15 14:35 更新

索引(index)是 Pandas 的重要工具,通過索引可以從 DataFame 中選擇特定的行數(shù)和列數(shù),這種選擇數(shù)據(jù)的方式稱為“子集選擇”。

在 Pandas 中,索引值也被稱為標(biāo)簽(label),它在 Jupyter 筆記本中以粗體字進(jìn)行顯示。索引可以加快數(shù)據(jù)訪問的速度,它就好比數(shù)據(jù)的書簽,通過它可以實(shí)現(xiàn)數(shù)據(jù)的快速查找。

創(chuàng)建索引

通過示例對(duì) index 索引做進(jìn)一步講解。下面創(chuàng)建一個(gè)帶有 index 索引的數(shù)據(jù),并使用 read_csv() 這些讀取數(shù)據(jù):

import pandas as pd    
data = pd.read_csv("person.csv") 
print(data) 

輸出結(jié)果:

   ID   Name  Age      City  Salary
0   1   Jack   28   Beijing   22000
1   2   Lida   32  Shanghai   19000
2   3   John   43  Shenzhen   12000
3   4  Helen   38  Hengshui    3500

通過列索引(標(biāo)簽)讀取多列數(shù)據(jù)。

import pandas as pd  
#設(shè)置"Name"為行索引    
data = pd.read_csv("person.csv", index_col ="Name")   
# 通過列標(biāo)簽選取多列數(shù)據(jù)  
a = data[["City","Salary"]]
print(a)

輸出結(jié)果:

           City  Salary
Name                  
Jack    Beijing   22000
Lida   Shanghai   19000
John   Shenzhen   12000
Helen  Hengshui    3500

再看一組簡單的示例:

import pandas as pd  
info =pd.read_csv("person.csv", index_col ="Name")
#獲取單列數(shù)據(jù),或者以列表的形式傳入["Salary"] 
a =info["Salary"] 
print(a)

輸出結(jié)果:

       Salary
Name        
Jack    22000
Lida    19000
John    12000
Helen    3500

設(shè)置索引

set_index() 將已存在的列標(biāo)簽設(shè)置為 DataFrame 行索引。除了可以添加索引外,也可以替換已經(jīng)存在的索引。比如您也可以把 Series 或者一個(gè) DataFrme 設(shè)置成另一個(gè) DataFrame 的索引。示例如下:

info = pd.DataFrame({'Name': ['Parker', 'Terry', 'Smith', 'William'],  'Year': [2011, 2009, 2014, 2010], 
'Leaves': [10, 15, 9, 4]})
#設(shè)置Name為行索引
print(info.set_index('Name'))

輸出結(jié)果:

         Year  Leaves
Name                
Parker   2011      10
Terry    2009      15
Smith    2014       9
William  2010       4

重置索引

您可以使用 reset_index() 來恢復(fù)初始行索引,示例如下:

import pandas as pd
import numpy as np
info = pd.DataFrame([('William', 'C'), 
('Smith', 'Java'), 
('Parker', 'Python'), 
('Phill', np.nan)], 
index=[1, 2, 3, 4], 
columns=('name', 'Language')) 
print(info)
print(info.reset_index())

輸出結(jié)果:

重置前:
     name    Language
1  William        C
2    Smith     Java
3   Parker   Python
4    Phill      NaN
重置后:
   index     name    Language
0      1  William        C
1      2    Smith     Java
2      3   Parker   Python
3      4    Phill      NaN


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)