Pandas 教程-Pandas 索引
整理:python架构师
Pandas 索引被定义为从 DataFrame 中选择特定行和列数据的重要工具。它的任务是组织数据并提供快速访问数据的能力。它也可以称为子集选择。
索引中的值以粗体字体显示,索引的各个值称为标签。
如果我们想比较有和没有索引时的数据访问时间,可以使用%%timeit来比较各种访问操作所需的时间。
我们还可以将索引定义为通过它可以在整个 Series 或 DataFrame 中访问任何数据的地址。DataFrame 是三个不同组件的组合,即索引、列 和 数据。
轴和轴
轴被定义为一种通用术语,指的是行和列,而轴则是这些行和列的集合。
创建索引
# importing pandas packageimport pandas as pddata = pd.read_csv("aa.csv")data
Name Hire Date Salary Leaves Remaining0 John Idle 03/15/14 50000.0 101 Smith Gilliam 06/01/15 65000.0 82 Parker Chapman 05/12/14 45000.0 103 Jones Palin 11/01/13 70000.0 34 Terry Gilliam 08/12/14 48000.0 75 Michael Palin 05/23/13 66000.0 8
专属福利
示例1
# importing pandas packageimport pandas as pd# making data frame from csv fileinfo = pd.read_csv("aa.csv", index_col ="Name")# retrieving multiple columns by indexing operatora = info[["Hire Date", "Salary"]]print(a)
Name Hire Date Salary0 John Idle 03/15/14 50000.01 Smith Gilliam 06/01/15 65000.02 Parker Chapman 05/12/14 45000.03 Jones Palin 11/01/13 70000.04 Terry Gilliam 08/12/14 48000.05 Michael Palin 05/23/13 66000.0
示例2
# importing pandas packageimportpandas as pd# making data frame from csv fileinfo =pd.read_csv("aa.csv", index_col ="Name")# retrieving columns by indexing operatora =info["Salary"]print(a)
Name Salary0 John Idle 50000.01 Smith Gilliam 65000.02 Parker Chapman 45000.03 Jones Palin 70000.04 Terry Gilliam 48000.05 Michael Palin 66000.0
设置索引
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])
Name Year Leaves1 1 Parker 2011 102 4 Terry 2009 153 9 Smith 2014 94 16 William 2010 4
多重索引
数据中还可以有多个索引。
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' DataFrame。
info = pd.DataFrame([('William', 'C'),('Smith', 'Java'),('Parker', 'Python'),('Phill', np.nan)],index=[1, 2, 3, 4],columns=('name', 'Language'))infoinfo.reset_index()
index name Language0 1 William C1 2 Smith Java2 3 Parker Python3 4 Phill NaN
热门推荐