Pandas索引用法详细解析

Pandas索引被定义为从DataFrame中选择特定行和列数据的重要工具。它的任务是组织数据并提供对数据的快速访问。也可以称为子集选择。
索引中的值以粗体显示, 索引的单个值称为标签。
如果要比较有索引和无索引的数据访问时间, 可以使用%% timeit来比较各种访问操作所需的时间。
我们还可以定义一个索引, 例如地址, 通过它可以在Series或DataFrame中访问任何数据。 DataFrame是三个不同组件(索引, 列和数据)的组合。
轴和轴
轴被定义为引用行和列的通用术语, 而轴则是这些行和列的集合。
创建索引
首先, 我们必须提取一个包含一些用于索引的数据的csv文件。

# importing pandas package import pandas as pddata = http://www.srcmini.com/pd.read_csv("aa.csv")data

输出
NameHire DateSalaryLeaves Remaining0John Idle03/15/1450000.0101Smith Gilliam06/01/1565000.082Parker Chapman05/12/1445000.0103Jones Palin11/01/1370000.034Terry Gilliam08/12/1448000.075Michael Palin05/23/1366000.08

例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)

输出
NameHire DateSalary0John Idle03/15/1450000.01Smith Gilliam06/01/1565000.02Parker Chapman05/12/1445000.03Jones Palin11/01/1370000.04Terry Gilliam08/12/1448000.05Michael Palin05/23/1366000.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)

输出
NameSalary0John Idle50000.0 1Smith Gilliam65000.0 2Parker Chapman45000.0 3Jones Palin70000.0 4Terry Gilliam48000.0 5Michael Palin66000.0

设定索引
” set_index” 用于使用现有列设置DataFrame索引。索引可以替换现有索引, 也可以扩展现有索引。
它设置一个列表, Series或DataFrame作为DataFrame的索引。
info = pd.DataFrame({'Name': ['Parker', 'Terry', 'Smith', 'William'], 'Year': [2011, 2009, 2014, 2010], 'Leaves': [10, 15, 9, 4]})infoinfo.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])

输出
NameYearLeaves11Parker20111024Terry20091539Smith20149 416William20104

多重索引
我们还可以在数据中包含多个索引。
范例1:
import pandas as pdimport numpy as nppd.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'))infoinfo.reset_index()

【Pandas索引用法详细解析】输出
indexnameLanguage0 1WilliamC1 2SmithJava2 3ParkerPython3 4PhillNaN

    推荐阅读