pandas set index的用途(pandas设置索引)34

作者 : 慕源网 本文共2859个字,预计阅读时间需要8分钟 发布时间: 2021-12-8 共40人阅读

pandas set index的用途(pandas设置索引)34

pandas set index的用途

set_index可以指定数据中的某一列,将其作为该数据的新索引

本文是Python Pandas教程系列的一部分,您可以点击Python Pandas使用教程查看所有。

语法:

Dataframe.set_index(keys, append, inplace, drop, verify_integrity)
参数 keys:label或 array-like 或 labels/arrayslist 

此参数可以是单个列键,

长度与调用DataFrame相同的单个数组,

也可以是包含列键和数组的任意组合的列表。

在这里,“array” 包括Series,Index,

np.ndarray,和Iterator的实例。

drop:bool, 默认为 True

删除要用作新索引的列。

append:bool, 默认为False

是否将列追加到现有索引。

inplace:bool, 默认为 False

适当地修改DataFrame(不创建新对象)。

verify_integrity:bool, 默认为 False

检查新索引是否重复。否则,将检查推迟到必要时进行。设置为False将改善此方法的性能。

返回值: DataFrame

更改了行标签。

pandas设置索引

现在我们看看如何使用 set_index() 函数以及使用不同的参数在 Pandas Dataframe 中设置索引。

示例#1

代码:

import pandas as pd
data = pd.DataFrame({
"name":["Span","Such","Vetts","Deep","Apoo","Sou","Ath","Pri","Pan","Pran","Anki"] ,"age":[25,26,27,28,29,30,31,32,33,34,35] ,"sal":[30000,40000,50000,60000,70000,80000,90000,95000,96000,97000,98000] ,"expense":[20000,30000,40000,50000,60000,70000,80000,85000,86000,87000,88000]})
data.set_index('name')
print(data.set_index('name'))

输出:

pandas set index的用途(pandas设置索引)34

说明:在这里,我们首先创建一个包含姓名、年龄、薪水和费用的 Dataframe,并添加必要的值并使用 pd 调用 pandas。创建Dataframe后,我们将使用函数 set_index() 设置索引。在方括号内,我们指定要设置索引的列名,在本例中为“name”。所以,我们添加代码,data.set_index(‘name’),最后打印输出。在输出中,如您所见,列 ‘name’ 也被打印为变量,并且与所有其他列完全分开。这是因为它就像另一个索引值一样,所有名称都充当行的索引值。

示例 #2 – 使用 Inplace 参数的 Set_Index() 函数

代码:

import pandas as pd
data = pd.DataFrame({
"name":["Span","Such","Vetts","Deep","Apoo","Sou","Ath","Pri","Pan","Pran","Anki"] ,"age":[25,26,27,28,29,30,31,32,33,34,35] ,"sal":[30000,40000,50000,60000,70000,80000,90000,95000,96000,97000,98000] ,"expense":[20000,30000,40000,50000,60000,70000,80000,85000,86000,87000,88000]})
data_copy=data.copy()
data_copy.set_index('name', inplace = True)
print(data_copy)

输出:

pandas set index的用途(pandas设置索引)34

解释: 在这个程序中,我们将使用 inplace 参数设置索引“set_index”。为此,我们将在我们的语法结构中设置 inplace = True。然而,在我们这样做之前,我们如何复制信息。我们将进行复制的解释是,当我们使用 inplace = True 时,set_index 技术将覆盖信息。我不希望直接覆盖信息,因此我们将首先进行复制。要复制上述索引,我们使用函数 copy()。因此,data_copy() 将包含与原始数据相同的信息。复制信息后,我们使用 set_index() 函数和 inplace=True 参数。通过将 inplace 参数设置为 inplace = True,代码可以直接更改 DataFrame。

示例 #3 – 使用 Drop 参数

代码:

import pandas as pd
data = pd.DataFrame({
"name":["Span","Such","Vetts","Deep","Apoo","Sou","Ath","Pri","Pan","Pran","Anki"] ,"age":[25,26,27,28,29,30,31,32,33,34,35] ,"sal":[30000,40000,50000,60000,70000,80000,90000,95000,96000,97000,98000] ,"expense":[20000,30000,40000,50000,60000,70000,80000,85000,86000,87000,88000]})
data.set_index('name', drop = False)
print(data.set_index('name', drop = False))

输出:

pandas set index的用途(pandas设置索引)34

示例 #4 – 在索引中使用多个变量

代码:

import pandas as pd
data = pd.DataFrame({
"name":["Span","Such","Vetts","Deep","Apoo","Sou","Ath","Pri","Pan","Pran","Anki"] ,"age":[25,26,27,28,29,30,31,32,33,34,35] ,"sal":[30000,40000,50000,60000,70000,80000,90000,95000,96000,97000,98000] ,"expense":[20000,30000,40000,50000,60000,70000,80000,85000,86000,87000,88000]})
data.set_index(['name','age'])
print(data.set_index(['name','age']))

输出:

pandas set index的用途(pandas设置索引)34

结论

最后,我们总结说 set_index() 函数通过使用不同的参数将给定的列作为索引来创建一个新的 Dataframe。为了将索引列保留为 Dataframe 中的另一个单独列,我们使用参数 drop=False 并且为了将所有索引转换回其原始列,我们使用 Pandas 中的 reset_index() 函数。

 


慕源网 » pandas set index的用途(pandas设置索引)34

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

发表评论

开通VIP 享更多特权,建议使用QQ登录