用法:

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

使用现有列设置 DataFrame 索引。

使用一个或多个现有的列或数组(具有正确的长度)设置DataFrame索引(行标签)。索引可以替换现有的索引,也可以在其上展开。

  •  keys:这个参数可以是单个列键、与调用DataFrame相同长度的单个数组,或者包含列键和数组的任意组合的列表。在这里,数组包括Series、Index、np.ndarray
  • drop:删除要用作新索引的列。
  • append:是否向现有索引追加列。
  • inplace: 如果为True,则就地修改DataFrame(不创建新对象)。
  • verify_integrity:检查新索引是否有副本。

例子:

>>> import pandas as pd
>>> df = pd.DataFrame({'month': [1, 4, 7, 10],
...                    'year': [2012, 2014, 2013, 2014],
...                    'sale': [55, 40, 84, 31]})
>>> df
   month  year  sale
0      1  2012    55
1      4  2014    40
2      7  2013    84
3     10  2014    31
>>> df.set_index('month')  #将month列设置为索引
       year  sale
month
1      2012    55
4      2014    40
7      2013    84
10     2014    31
>>> df.set_index(['year', 'month'])    #使用列 ‘year’ 和 ‘month’ 创建一个 MultiIndex(多层次 
                                          索引)
            sale
year month
2012 1        55
2014 4        40
2013 7        84
2014 10       31
>>> df.set_index([pd.Index([1, 2, 3, 4]), 'year'])   ##使用索引和列创建 MultiIndex
        month  sale
  year
1 2012      1    55
2 2014      4    40
3 2013      7    84
4 2014     10    31
>>> s = pd.Series([1, 2, 3, 4])         
>>> df.set_index([s, s**2])              ##使用两个系列创建一个 MultiIndex:
      month  year  sale
1 1       1  2012    55
2 4       4  2014    40
3 9       7  2013    84
4 16     10  2014    31

参考:

pandas.DataFrame.set_index — pandas 1.4.1 documentation 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐