mars.dataframe.DataFrame.reset_index#
- DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='', incremental_index=False)#
重置索引或其某一层级。
重置DataFrame的索引,并使用默认索引。如果DataFrame具有多重索引,此方法可以移除一个或多个级别。
- Parameters
级别 (int, str, tuple, 或 list, 默认值 None) – 仅从索引中移除给定的级别。默认情况下移除所有级别。
drop (bool, default False) – 不尝试将索引插入数据框列。这将索引重置为默认的整数索引。
inplace (bool, 默认值为 False) – 直接修改 DataFrame(不创建新对象)。
col_level (int 或 str, 默认值 0) – 如果列具有多个级别,则确定标签插入到哪个级别。默认情况下,它被插入到第一个级别。
col_fill (object, default '') – 如果列具有多个级别,决定其他级别的命名。如果为 None,则索引名称会重复。
incremental_index (bool, 默认值为 False) – 确保 RangeIndex 是递增的,当输出的 DataFrame 有多个块时,确保索引递增会消耗更多计算,因此默认情况下,每个块的索引将从 0 开始,设置 incremental_index=True,reset_index 将保证输出的 DataFrame 的索引从 0 到 n - 1。
- Returns
DataFrame 带有新的索引,或者如果
inplace=True则为 None。- Return type
DataFrame 或 无
另请参阅
DataFrame.set_index与reset_index相反。
DataFrame.reindex更改为新索引或扩展索引。
DataFrame.reindex_like更改为与其他DataFrame相同的索引。
示例
>>> import mars.tensor as mt >>> import mars.dataframe as md >>> df = md.DataFrame([('bird', 389.0), ... ('bird', 24.0), ... ('mammal', 80.5), ... ('mammal', mt.nan)], ... index=['falcon', 'parrot', 'lion', 'monkey'], ... columns=('class', 'max_speed')) >>> df.execute() class max_speed falcon bird 389.0 parrot bird 24.0 lion mammal 80.5 monkey mammal NaN
当我们重置索引时,旧索引会作为一列添加,并使用新的顺序索引:
>>> df.reset_index().execute() 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).execute() class max_speed 0 bird 389.0 1 bird 24.0 2 mammal 80.5 3 mammal NaN
您也可以将 reset_index 与 MultiIndex 一起使用。
>>> import pandas as pd >>> 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 = md.DataFrame([(389.0, 'fly'), ... ( 24.0, 'fly'), ... ( 80.5, 'run'), ... (mt.nan, 'jump')], ... index=index, ... columns=columns) >>> df.execute() speed species max type class name bird falcon 389.0 fly parrot 24.0 fly mammal lion 80.5 run monkey NaN jump
如果索引有多个级别,我们可以重置其中的一部分:
>>> df.reset_index(level='class').execute() 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).execute() 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').execute() 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').execute() 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