📅  最后修改于: 2020-10-29 03:14:29             🧑  作者: Mango
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
# 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
# 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