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索引。索引可以替换现有索引, 也可以扩展现有索引。
它设置一个列表, Series或DataFrame作为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
评论前必须登录!
注册