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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
Python如何为图片添加水印
Nov 25 Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 Python
python f-string式格式化听语音流程讲解
Jun 18 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python3实现带多张图片、附件的邮件发送
Aug 10 Python
Python OrderedDict的使用案例解析
Oct 25 Python
Python3 虚拟开发环境搭建过程(图文详解)
Jan 06 Python
python实现过滤敏感词
May 08 Python
python 判断文件或文件夹是否存在
Mar 18 Python
python文件与路径操作神器 pathlib
Apr 01 Python
pandas取dataframe特定行列的实现方法
pytorch 如何使用amp进行混合精度训练
只需要这一行代码就能让python计算速度提高十倍
pytorch 如何使用float64训练
pytorch 使用半精度模型部署的操作
May 24 #Python
解决Pytorch半精度浮点型网络训练的问题
May 24 #Python
Python办公自动化之Excel(中)
May 24 #Python
You might like
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
php简单防盗链实现方法
2015/07/29 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
Angular2库初探
2017/03/01 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python制作简易注册登录系统
2016/12/15 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python 标准差计算的实现(std)
2019/07/29 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
python 函数中的参数类型
2020/02/11 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
护理专业大学生自我推荐信
2014/01/25 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技