看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas.DataFrame.reset_index 是一个用于重置 DataFrame 索引的方法,通常用于将索引转换为列,并为 DataFrame 生成一个默认的整数索引。
DataFrame 和 Series 都支持此方法。功能是重置索引,或其某一级别,重置 DataFrame 的索引,并使用默认索引代替。如果 DataFrame 具有 MultiIndex,此方法可以删除一个或多个级别。
reset_index(level=None,
*,
drop=False,
inplace=False,
col_level=0,
col_fill='',
allow_duplicates=_NoDefault.no_default,
names=None
)
参数:
level
:整数、字符串、元组或列表,默认 Nonedrop
:布尔值,默认 Falseinplace
:布尔值,默认 Falsecol_level
:整数或字符串,默认 0col_fill
:对象,默认 ''allow_duplicates
:布尔值,可选,默认 lib.no_defaultnames
:整数、字符串或一维列表,默认 None返回值:
DataFrame
或 None
inplace=True
则为 None
。参见:
DataFrame.set_index
DataFrame.reindex
DataFrame.reindex_like
以下是一些示例。
>>> df = pd.DataFrame([('bird', 389.0),
... ('bird', 24.0),
... ('mammal', 80.5),
... ('mammal', np.nan)],
... index=['falcon', 'parrot', 'lion', 'onkey'],
... columns=('class', 'ax_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
# 您也可以对 MultiIndex 使用 reset_index 。
>>> 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
更新时间:2024-07-10 16:00:31 标签:pandas python 索引