DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='') [source]
重置索引或索引的一个级别。
重置DataFrame的索引,并使用默认索引。如果DataFrame有一个MultiIndex,此方法可以删除一个或多个级别。
参数: | level : 只从索引中删除给定的级别。默认移除所有级别。 drop : 不要尝试向dataframe列插入索引。这会将索引重置为默认整数索引。 inplace : 适当地修改 col_level : 如果列有多个级别,请确定将标签插入到哪个级别。默认情况下,它被插入到第一级。 col_fill : 如果列有多个级别,请确定其他级别的命名方式。如果没有,则重复索引名。 |
返回值: |
53/5000 带有新索引的 |
例子,
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(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