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集合用法实例分析
May 30 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
Django forms组件的使用教程
Oct 08 Python
python制作mysql数据迁移脚本
Jan 01 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
django基于cors解决跨域请求问题详解
Aug 06 Python
python 导入数据及作图的实现
Dec 03 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
python 基于opencv实现高斯平滑
Dec 18 Python
python中的random模块和相关函数详解
Apr 22 Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
You might like
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
select标签模拟/美化方法采用JS外挂式插件
2013/04/01 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
图片懒加载插件实例分享(含解析)
2017/01/09 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
JavaScript执行环境及作用域链实例分析
2018/08/01 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
Python open读写文件实现脚本
2008/09/06 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
基于python 凸包问题的解决
2020/04/16 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
污水厂厂长岗位职责
2014/01/04 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
医院见习报告范文
2014/11/03 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle