pandas中DataFrame重置索引的几种方法


Posted in Python onMay 24, 2021

在pandas中,经常对数据进行处理 而导致数据索引顺序混乱,从而影响数据读取、插入等。

小笔总结了以下几种重置索引的方法:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(20).reshape((5, 4)),columns=['a', 'b', 'c', 'd'])
#得到df:
     a    b    c    d
0    0    1    2    3
1    4    5    6    7
2    8    9    10   11
3    12   13   14   15
4    16   17   18   19

# 对其重排顺序,得到索引顺序倒序的数据
df2 = df.sort_values('a', ascending=False)
# 得到df2:
     a    b     c     d
4    16   17    18    19
3    12   13    14    15
2    8    9     10    11
1    4    5     6     7
0    0    1     2     3

下面对df2重置索引,使其索引从0开始

法一:

简单粗暴:

df2.index = range(len(df2))

# 输出df2:
     a     b     c     d
0    16    17    18    19
1    12    13    14    15
2    8     9     10    11
3    4     5     6     7
4    0     1     2     3

法二:

df2 = df2.reset_index(drop=True)  # drop=True表示删除原索引,不然会在数据表格中新生成一列'index'数据
# 输出df2:
     a     b     c     d
0    16    17    18    19
1    12    13    14    15
2    8     9     10    11
3    4     5     6     7
4    0     1     2     3

法三:

df2 = df2.reindex(labels=range(len(df))  #labels是第一个参数,可以省略
# 输出df2
     a     b     c     d
0    16    17    18    19
1    12    13    14    15
2    8     9     10    11
3    4     5     6     7
4    0     1     2     3

# 注:df = df.reindex(index=[]),在原数据结构上新建行(index是新索引,若新建数据索引在原数据中存在,则引用原有数据),默认用NaN填充(使用fill_value=0 来修改填充值自定义,此处我设置的是0)。
# df = df.reindex(columns=[]),在原数据结构上新建列,方法与新建行一样

法四:

df2 = df2.set_index(keys=['a', 'c'])  # 将原数据a, c列的数据作为索引。
# drop=True,默认,是将数据作为索引后,在表格中删除原数据
# append=False,默认,是将新设置的索引设置为内层索引,原索引是外层索引

# 输出df2,注意a,c列是索引:
            b     d
a     c        
16    18    17    19
12    14    13    15
8     10    9     11
4     6     5     7
0     2     1     3

到此这篇关于pandas中DataFrame重置索引的几种方法的文章就介绍到这了,更多相关pandas DataFrame重置索引内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
实例讲解Python3中abs()函数
Feb 19 Python
python 读取修改pcap包的例子
Jul 23 Python
tensorflow如何批量读取图片
Aug 29 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python批量修改文件名的示例
Sep 27 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
You might like
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
jQuery实现带延时功能的水平多级菜单效果【附demo源码下载】
2016/09/21 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
Python while循环使用else语句代码实例
2020/02/07 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
物流司机岗位职责
2013/12/28 职场文书
《梅兰芳学艺》教学反思
2014/02/24 职场文书
电子工程求职信
2014/07/17 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android
Redis唯一ID生成器的实现
2022/07/07 Redis