pandas.DataFrame.reset_index#
- DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='', allow_duplicates=NoDefault.no_default, names=None)[源代码]#
重置索引或其级别。
重置DataFrame的索引,并使用默认索引。如果DataFrame具有多重索引,则此方法可以移除一个或多个级别。
- 参数
- levelInt、str、tuple或list,默认为无
仅从索引中删除给定级别。默认情况下删除所有级别。
- drop布尔值,默认为False
不要试图将索引插入到数据框列中。这会将索引重置为默认整数索引。
- inplace布尔值,默认为False
就地修改DataFrame(不创建新对象)。
- col_levelInt或str,默认为0
如果柱有多个标高,则确定将标签插入到哪个标高。默认情况下,它被插入到第一层中。
- col_fill对象,默认为‘’
如果柱有多个标高,则确定如何命名其他标高。如果没有,则索引名称重复。
- allow_duplicatesBool,可选,默认lib.no_default
允许创建重复的列标签。
1.5.0 新版功能.
- namesInt、str或一维列表,默认为无
使用给定的字符串,重命名包含索引数据的DataFrame列。如果DataFrame具有多重索引,则它必须是长度等于层数的列表或元组。
1.5.0 新版功能.
- 退货
- DataFrame或无
使用新索引的DataFrame,或者如果
inplace=True。
参见
DataFrame.set_index与RESET_INDEX相反。
DataFrame.reindex更改为新索引或扩展索引。
DataFrame.reindex_like更改为与其他DataFrame相同的索引。
示例
>>> df = pd.DataFrame([('bird', 389.0), ... ('bird', 24.0), ... ('mammal', 80.5), ... ('mammal', np.nan)], ... index=['falcon', 'parrot', 'lion', 'monkey'], ... columns=('class', 'max_speed')) >>> df class max_speed falcon bird 389.0 parrot bird 24.0 lion mammal 80.5 monkey mammal NaN
当我们重置索引时,旧索引被添加为列,并使用新的顺序索引:
>>> df.reset_index() index class max_speed 0 falcon bird 389.0 1 parrot bird 24.0 2 lion mammal 80.5 3 monkey mammal NaN
我们可以使用 drop 参数以避免将旧索引添加为列:
>>> df.reset_index(drop=True) class max_speed 0 bird 389.0 1 bird 24.0 2 mammal 80.5 3 mammal NaN
您还可以使用 reset_index 使用 MultiIndex 。
>>> index = pd.MultiIndex.from_tuples([('bird', 'falcon'), ... ('bird', 'parrot'), ... ('mammal', 'lion'), ... ('mammal', 'monkey')], ... names=['class', 'name']) >>> columns = pd.MultiIndex.from_tuples([('speed', 'max'), ... ('species', 'type')]) >>> df = pd.DataFrame([(389.0, 'fly'), ... ( 24.0, 'fly'), ... ( 80.5, 'run'), ... (np.nan, 'jump')], ... index=index, ... columns=columns) >>> df speed species max type class name bird falcon 389.0 fly parrot 24.0 fly mammal lion 80.5 run monkey NaN jump
使用 names 参数中,选择索引列的名称:
>>> df.reset_index(names=['classes', 'names']) classes names speed species max type 0 bird falcon 389.0 fly 1 bird parrot 24.0 fly 2 mammal lion 80.5 run 3 mammal monkey NaN jump
如果索引有多个级别,我们可以重置其中的一个子集:
>>> df.reset_index(level='class') class speed species max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump
如果我们不删除索引,默认情况下,它被放在顶层。我们可以把它放在另一个层面上:
>>> df.reset_index(level='class', col_level=1) speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump
当索引插入到另一个级别下时,我们可以使用参数指定在哪个级别下 col_fill :
>>> df.reset_index(level='class', col_level=1, col_fill='species') species speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump
如果我们为指定一个不存在的级别 col_fill ,它是创建的:
>>> df.reset_index(level='class', col_level=1, col_fill='genus') genus speed species class max type name falcon bird 389.0 fly parrot bird 24.0 fly lion mammal 80.5 run monkey mammal NaN jump