Python中reset_index()函数的使用

 更新时间:2023年05月16日 11:00:15   作者:小小白2333  
本文主要介绍了Python中reset_index()函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

resert_index()函数

Series.reset_index(level=None, drop=False, name=NoDefault.no_default, inplace=False)
  • drop: 重新设置索引后是否将原索引作为新的一列并入DataFrame,默认为False
  • inplace: 是否在原DataFrame上改动,默认为False
  • level: 如果索引(index)有多个列,仅从索引中删除level指定的列,默认删除所有列
  • col_level: 如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级
  • col_fill: 如果列名(columns)有多个级别,决定其他级别如何命名
  •  作用: 用索引重置生成一个新的DataFrame或Series。当索引需要被视为列,或者索引没有意义,需要在另一个操作之前重置为默认值时。在机器学习中常常会对索引进行一定的处理,用于是否保留原有的索引。

返回:DataFrame or None。具有新索引的数据帧,如果inplace=True,则无索引。

例子:

import pandas as pd
df = pd.DataFrame(data={'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]})
print(df)
print('\n')
print(df.reset_index()) # 会将原来的索引index作为新的一列
print('\n')
print(df.reset_index(drop=True)) # 使用drop参数设置去掉原索引
print('\n')

结果:

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
 
   index  A  B  C
0      0  1  4  7
1      1  2  5  8
2      2  3  6  9
  
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

读懂代码中resert_index():

def concat_detail(x):
    return pd.Series({'备注':';'.join(x['detail'])})
df2=df1[['cwhxzqh','detail']].groupby('cwhxzqh').apply(concat_detail).reset_index()
df2

将df1中原来的索引作为一个列,列名为 index

补:各参数的用法

示例

参数drop

False表示重新设置索引后将原索引作为新的一列并入DataFrame,True表示删除原索引

import pandas as pd
import numpy as np
df = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', 'max_speed'))
print(df)
print('\n')
df1 = df.reset_index()
print(df1)
print('\n')
df2 = df.reset_index(drop=True)
print(df2)

输出:

参数drop的示例

参数inplace

True表示在原DataFrame上修改,False将修改后的DataFrame作为新的对象返回

import pandas as pd
import numpy as np
df = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', 'max_speed'))
print(df)
print('\n')
df1 = df.reset_index()
print(df1)
print('\n')
df2 = df.reset_index(inplace=True)
print(df2)
print('\n')
print(df)

输出:

参数inplace的示例

参数level

如果索引有多个列,仅从索引中删除由level指定的列,默认删除所有列。输入整数时表示将index的names中下标为level的索引删除;输入为字符串时表示将名字为level的索引删除

import pandas as pd
import numpy as np
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)
print(df)
print('\n')
df0 = df.reset_index()
print(df0)
print('\n')
df1 = df.reset_index(level=1)
print(df1)
print('\n')
df2 = df.reset_index(level='name')
print(df2)

输出:

参数level的示例1

参数level的示例2

参数col_level

如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级(col_level=0)

import pandas as pd
import numpy as np
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)
print(df)
print('\n')
df1 = df.reset_index(level=0, col_level=0)
print(df1)
print('\n')
df2 = df.reset_index(level=0, col_level=1)
print(df2)
print('\n')

输出:

参数col_level的示例

参数col_fill

重置索引时被删除的索引只能插入一个级别,如果列名(columns)有多个级别,那么这个列的列名的其他级别如何命名就由col_fill决定,默认不做填充,如果传入None则用被删除的索引的名字填充

import pandas as pd
import numpy as np
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)
print(df)
print('\n')
df0 = df.reset_index(level=0, col_level=0)
print(df0)
print('\n')
df1 = df.reset_index(level=0, col_level=0, col_fill=None)
print(df1)
print('\n')
df2 = df.reset_index(level=0, col_level=1, col_fill='species')
print(df2)
print('\n')
df3 = df.reset_index(level=0, col_level=0, col_fill='genus')
print(df3)
print('\n')

输出:
参数col_fill的示例1

参数col_fill的示例2

到此这篇关于Python中reset_index()函数的使用的文章就介绍到这了,更多相关Python reset_index()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python基于moviepy实现音视频剪辑

    python基于moviepy实现音视频剪辑

    为了方便学习和复习,需要把一些长音视频剪成一些小片段。本文介绍如何用Python实现,把音视频中的某一些片段剪出来。
    2021-06-06
  • Python 解决空列表.append() 输出为None的问题

    Python 解决空列表.append() 输出为None的问题

    在本篇文章里小编给大家整理了一篇关于Python 解决空列表.append() 输出为None的问题的相关内容,有兴趣的朋友们可以学习下。
    2021-05-05
  • 详解Python数据结构与算法中的顺序表

    详解Python数据结构与算法中的顺序表

    线性表在计算机中的表示可以采用多种方法,采用不同存储方法的线性表也有着不同的名称和特点。线性表有两种基本的存储结构:顺序存储结构和链式存储结构。本文将介绍顺序存储结构的特点以及各种基本运算的实现。需要的可以参考一下
    2022-01-01
  • 教你如何用pycharm安装pyqt5及其相关配置

    教你如何用pycharm安装pyqt5及其相关配置

    这篇文章主要介绍了教你如何用pycharm安装pyqt5及其相关配置,首先通过单独创建一个文件夹来专门存放pyqt5的代码并建立虚拟环境展开文章叙述,需要的小伙伴可以参考一下
    2022-04-04
  • Python验证码识别处理实例

    Python验证码识别处理实例

    这篇文章主要介绍了Python验证码识别处理实例,实现过程讲解很详细,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 为何你的Python代码在Notepad++中只闪现一下就消失无踪?

    为何你的Python代码在Notepad++中只闪现一下就消失无踪?

    你是否曾在Notepad++中运行编写的Python代码,却发现它们瞬间消失无踪?别担心,这不是你的幻觉,在这篇指南中,我们将揭秘这一现象背后的原因,并教你如何轻松解决,让我们一起揭开这个谜团,让你的Python代码在Notepad++中安然无恙吧!
    2024-02-02
  • python多进程使用apply_async的使用方法详解

    python多进程使用apply_async的使用方法详解

    这篇文章主要介绍了python多进程使用apply_async使用方法详解,apply_async是异步非阻塞式,不用等待当前进程执行完毕,随时跟进操作系统调度来进行进程切换,即多个进程并行执行,提高程序的执行效率
    2022-09-09
  • python图片格式转换脚本

    python图片格式转换脚本

    大家好,本篇文章主要讲的是python图片格式转换脚本,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Python requests HTTP验证登录实现流程

    Python requests HTTP验证登录实现流程

    这篇文章主要介绍了Python requests HTTP验证登录实现流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python OpenCV高斯金字塔与拉普拉斯金字塔的实现

    Python OpenCV高斯金字塔与拉普拉斯金字塔的实现

    这篇文章主要介绍了Python OpenCV高斯金字塔与拉普拉斯金字塔的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论