Python pandas.DataFrame.set_index函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.set_index方法的使用。

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

使用现有列设置DataFrame索引。

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

参数

keys:labelarray-like labels/arrayslist 

此参数可以是单个列键,

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

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

在这里,“array” 包括SeriesIndex

np.ndarray,和Iterator的实例。

drop:bool, 默认为 True

删除要用作新索引的列。

append:bool, 默认为False

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

inplace:bool, 默认为 False

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

verify_integrity:bool, 默认为 False

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

返回值:

DataFrame

更改了行标签。

例子

>>> 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

将索引设置为 ‘month’ 列:

>>> df.set_index('month')
       year  sale
month
1      2012    55
4      2014    40
7      2013    84
10     2014    31

使用‘year’和‘month’列创建一个MultiIndex:

>>> df.set_index(['year', 'month'])
            sale
year  month
2012  1     55
2014  4     40
2013  7     84
2014  10    31

使用索引和列创建MultiIndex:

>>> df.set_index([pd.Index([1, 2, 3, 4]), 'year'])
         month  sale
   year
1  2012  1      55
2  2014  4      40
3  2013  7      84
4  2014  10     31

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

>>> s = pd.Series([1, 2, 3, 4])
>>> df.set_index([s, s**2])
      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

推荐阅读
cjavapy编程之路首页