📜  Pandas DataFrame.set_index

📅  最后修改于: 2020-10-29 05:23:59             🧑  作者: Mango

设定索引

Pandas set index()用于将List,Series或DataFrame设置为数据框的索引。我们可以在制作数据框时设置索引列。但是有时一个数据帧是由两个或多个数据帧组成的,然后可以使用此方法更改索引。

句法:

DataFrame.set_index(self, keys, drop=True, append=False, inplace=False, verify_integrity=False)

参数:

  • keys指类似标签或数组的标签或标签/数组的列表

它可以是单个列键,与调用DataFrame长度相同的单个数组,也可以是包含列键和数组的任意组合的列表。

  • drop:返回布尔值,默认值为True。用于删除将用作新索引的列。
  • append:返回布尔值,默认值为False。

它检查是否将列附加到现有索引。

  • inplace:返回布尔值,默认值为False。

它用于在适当位置修改DataFrame。我们不需要创建一个新对象。

  • verify_integrity:返回布尔值,默认值为False。

它检查新索引中是否有重复值。否则,它将推迟检查直到必要。它还将其设置为False,这将改善此方法的性能。

返回值:

它将行标签更改为输出。

范例1:

本示例说明如何设置索引:

import pandas as pd
info = pd.DataFrame({'Name': ['William', 'Phill', 'Parker', 'Smith'],
'Age': [32, 38, 41, 36],
'id': [105, 132, 134, 127]})
info

输出:

    Name    Age    id
0    William    32    105
1    Phill    38    132
2    Parker    41    134
3    Smith    36    127

现在,我们必须设置索引以创建“月”列:

info.set_index('month')

输出:

         Age  id
Name        
William  32  105
Phill    38  132
Parker   41  134
Smith    36  127

范例2:

使用“年龄”和“名称”列创建MultiIndex:

info.set_index(['Age', 'Name'])

输出:

    Name    id
Age        
32    William    105
38    Phill    132
41    Parker    134
36    Smith    127

范例3:

它使用索引和列创建一个MultiIndex:

info.set_index([pd.Index([1, 2, 3, 4]), 'Name'])

输出:

        Age    id
    Name        
1    William    32    105
2    Phill    38    132
3    Parker    41    134
4    Smith    36    127

范例4:

使用两个系列创建一个MultiIndex:

a = pd.Series([1, 2, 3, 4])
info.set_index([a, a**2])

输出:

        Name    Age    id
1    1    William    32    105
2    4    Phill    38    132
3    9    Parker    41    134
4    16    Smith    36    127