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基本数据类型详细介绍
Mar 11 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
简单了解Django ContentType内置组件
Jul 23 Python
Django如何实现上传图片功能
Aug 16 Python
tensorflow没有output结点,存储成pb文件的例子
Jan 04 Python
Python实现单例模式的5种方法
Jun 15 Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
You might like
域名查询代码公布
2006/10/09 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
Jquery实现简单的动画效果代码
2012/03/18 Javascript
jquery删除提示框弹出是否删除对话框
2014/01/07 Javascript
javascript显示中文日期的方法
2015/06/18 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
JS实现支持Ajax验证的表单插件
2016/03/24 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
React复制到剪贴板的示例代码
2017/08/22 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
2014/06/18 Python
Python运算符重载用法实例分析
2015/06/01 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
python ddt实现数据驱动
2018/03/14 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Python当中的array数组对象实例详解
2019/06/12 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
活动宣传策划方案
2014/05/23 职场文书
毕业生工作求职信
2014/06/30 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS