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获取Linux系统下的本机IP地址代码分享
Nov 07 Python
Python实现全角半角字符互转的方法
Nov 28 Python
python Pygame的具体使用讲解
Nov 03 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
Python创建空列表的字典2种方法详解
Feb 13 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
重写django的model下的objects模型管理器方式
May 15 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
You might like
php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
详解JS数值Number类型
2018/02/07 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
python实现简易版计算器
2020/06/22 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python实现机器人卡牌
2019/10/06 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
文职个人求职信范文
2013/09/23 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL