如何在Pandas中改变索引值

如何在Pandas中改变索引值

索引用来唯一地识别Pandas DataFrame中的一行。它只不过是一个行的标签。如果我们在创建DataFrame时没有指定索引值,那么它将采用默认值,即从0到n-1的数字,n表示行数。

让我们创建一个数据框架

示例 :

# import necessary packages
import pandas as pd
 
# create a dataframe
Students = pd.DataFrame({'Admission_id': ['AB101', 'AB102', 'AB103',
                                          'AB104', 'AB105'],
                         'Student_id': ['21GFG1', '21GFG2', '21GFG3',
                                        '21GFG4', '21GFG5'],
                         'Student_Name': ['Akhil', 'Mahesh Babu', 'Warner',
                                          'Virat', 'ABD'],
                         'Height': [5.9, 6.2, 5.6, 5.8, 5.10]})
# display dataframe
Students

输出:

如何在Pandas中改变索引值?

方法1:使用set_index()

要改变索引值,我们需要使用pandas中的set_index方法,该方法可以指定索引。

语法

DataFrameName.set_index(“column_name_to_setas_Index”,inplace=True/False)

其中,

  • inplace参数接受True或False,指定索引的改变是永久的或临时的。
  • True表示变化是永久性的。
  • False表示该变化是暂时的。

示例 1:

通过指定inplace=False来临时改变索引(或者)我们可以不指定inplace参数,因为_默认的inplace值是false。

# import necessary packages
import pandas as pd
 
# create a dataframe
Students = pd.DataFrame({'Admission_id': ['AB101', 'AB102', 'AB103',
                                          'AB104', 'AB105'],
                         'Student_id': ['21GFG1', '21GFG2', '21GFG3',
                                        '21GFG4', '21GFG5'],
                         'Student_Name': ['Akhil', 'Mahesh Babu', 'Warner',
                                          'Virat', 'ABD'],
                         'Height': [5.9, 6.2, 5.6, 5.8, 5.10]})
 
# setting admission id as index but temporarily
Students.set_index("Admission_id")

输出:

如何在Pandas中改变索引值?

但当我们在DataFrame中显示数据时,它仍然是以前的数据,因为执行的操作没有被保存,因为它是一个临时操作。

如何在Pandas中改变索引值?

解释 – 由于我们没有指定 inplace 参数在 set_index method中,默认它被视为false,并被视为一个临时操作。

例子2 :

通过在set_index方法中指定inplace=True,永久地改变索引。

示例 :

# import necessary packages
import pandas as pd
 
# create a dataframe
Students = pd.DataFrame({'Admission_id': ['AB101', 'AB102', 'AB103',
                                          'AB104', 'AB105'],
                         'Student_id': ['21GFG1', '21GFG2', '21GFG3',
                                        '21GFG4', '21GFG5'],
                         'Student_Name': ['Akhil', 'Mahesh Babu', 'Warner',
                                          'Virat', 'ABD'],
                         'Height': [5.9, 6.2, 5.6, 5.8, 5.10]})
 
# setting student id as index but permanently
Students.set_index("Student_id", inplace=True)
 
# display dataframe
Students

输出:

如何在Pandas中改变索引值?

例子3 :

当我们想只检索特定的列而不是所有的列时,请遵循以下代码

# import necessary packages
import pandas as pd
 
# create a dataframe
Students = pd.DataFrame({'Admission_id': ['AB101', 'AB102', 'AB103',
                                          'AB104', 'AB105'],
                         'Student_id': ['21GFG1', '21GFG2', '21GFG3',
                                        '21GFG4', '21GFG5'],
                         'Student_Name': ['Akhil', 'Mahesh Babu', 'Warner',
                                          'Virat', 'ABD'],
                         'Height': [5.9, 6.2, 5.6, 5.8, 5.10]})
 
# setting student id as index but permanently
Students.set_index("Student_id", inplace=True)
 
# display dataframe with required columns
Students[["Student_Name", "Height"]]

输出

如何在Pandas中改变索引值?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程