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中类的继承代码实例
Oct 28 Python
python实现判断数组是否包含指定元素的方法
Jul 15 Python
react+django清除浏览器缓存的几种方法小结
Jul 17 Python
深入了解Python在HDA中的应用
Sep 05 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python进程的状态、创建及使用方法详解
Dec 06 Python
python实现将json多行数据传入到mysql中使用
Dec 31 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
python适合做数据挖掘吗
Jun 16 Python
Python 如何在字符串中插入变量
Aug 01 Python
python多线程semaphore实现线程数控制的示例
Aug 10 Python
python使用pygame创建精灵Sprite
Apr 06 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也可以?成Shell Script
2006/10/09 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
Javascript中神奇的this
2016/01/20 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
Centos 升级到python3后pip 无法使用的解决方法
2018/06/12 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
马云的职业生涯规划之路
2014/01/01 职场文书
旅游个人求职信范文
2014/01/30 职场文书
如何写辞职信
2015/05/13 职场文书
十月围城观后感
2015/06/08 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
tree shaking对打包体积优化及作用
2022/07/07 Java/Android