pandas.DataFrame.reset_index # 数据框。reset_index ( level = None , * , drop = False , inplace = False , col_level = 0 , col_fill = '' , allowed_duplicates = _NoDefault.no_default , names = None ) [来源] # 重置索引或其级别。 重置DataFrame的索引,并使用默认的索引。如果DataFrame具有MultiIndex,则此方法可以删除一个或多个级别。 参数: level int、str、tuple 或 list,默认 None仅从索引中删除给定级别。默认删除所有级别。 drop bool, 默认 False不要尝试将索引插入数据框列。这会将索引重置为默认整数索引。 inplace布尔值,默认 False是否修改 DataFrame 而不是创建一个新的。 col_level int 或 str,默认 0如果列有多个级别,则确定标签插入到哪个级别。默认情况下它被插入到第一层。 col_fill对象,默认 ''如果列有多个级别,则确定其他级别的命名方式。如果 None 则重复索引名称。 allow_duplicates bool,可选,默认 lib.no_default允许创建重复的列标签。 1.5.0 版本中的新增内容。 名称int、str 或一维列表,默认 None使用给定的字符串,重命名包含索引数据的 DataFrame 列。如果 DataFrame 具有 MultiIndex,则它必须是长度等于级别数的列表或元组。 1.5.0 版本中的新增内容。 返回: 数据框或无具有新索引的 DataFrame 或 None if 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 使用名称参数,为索引列选择一个名称: >>> 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