首页 > 其他分享 >pandas中DataFrame重置索引的几种方法

pandas中DataFrame重置索引的几种方法

时间:2023-02-21 12:57:11浏览次数:38  
标签:11 index df 18 重置 DataFrame df2 索引 pandas

在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.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

 

标签:11,index,df,18,重置,DataFrame,df2,索引,pandas
From: https://www.cnblogs.com/yuyanc/p/17140577.html

相关文章

  • Pandas显示所有行
    当你试图打印一个超过预定义行和列数的大数据框架时,结果将被截断。请看下面的例子,以便更好地理解。#importingnumpylibraryimportpandasaspd#importingdiabet......
  • Python数据分析pandas之dataframe初识
    Python数据分析pandas之dataframe初识声明与简介pandas是一个基于python的、快速的、高效、灵活、易用的开源的数据处理、分析包(工具)。。pandas构建在numpy之上,它通过Data......
  • C#操作注册表简单教程(附带操作某数据库客户端注册表以实现重置试用期的效果)
     前言:使用Windows系统,经常会遇到需要做注册表的操作。例如,一些软件需要修改注册表、自己编写的软件需要新建注册表进行写入注册信息等等。以下内容以某常见的数据库操作......
  • pandas缺失值的处理
    缺失值的处理缺失值的类型numpy库中的:np.nan/np.NaN,不区分大小写None,区分大小写pandas中:pd.NA/pd.NaT:区分大小写缺失值判断#isna()/isnull()data=[[3,8,31],......
  • MYSQL重置密码
    以管理员身份打开命令行。停止MySQL服务(netstop服务名)。切换到MySQL的bin文件下,输入mysqld--console--skip-grant-tables--shared-memory。上个窗口保留不要关......
  • Win11重置开机密码
    【此方法为进入系统的状态下重置】1、桌面右击win开始键,选择计算机管理2、点开“本机用户和组”里的“用户”3、右键本次登入系统的名称,选择“设置密码”后点“继续”......
  • Pandas中的离散化和分箱
    pandas.cut()方法介绍  连续值经常需要离散化,或者分离成“箱子”进行分析,假设我们有某项研究中一组人群的数据,需要将其进行分组,放入离散的年龄框中:ages=[2,67,40,......
  • CentOS 7 忘记root密码 重置root密码
    重启后按方向键,定位到第一项按下e键进入后往下翻页定位到linux16开头将ro修改为rwinit=/sysroot/bin/bash完成后按一下按下Ctrl+X进入进入emergency模式......
  • 使用Pandas补全缺失值
      在大多数情况下,使用fillna来补全缺失值,调用fillna时可以使用一个常数作为参数来替代缺失值:df=pd.DataFrame(np.random.rand(7,3))df.iloc[2:5,1]=Nonedf.iloc......
  • Pandas中的dropna方法
      在默认情况下,只要该行含有缺失值,dropna便会删除所有包含了缺失值的行,如下所示:data=pd.DataFrame([[1.,6.5,3.],[1.,NA,NA],[NA,NA,NA],[NA,6.5,3.]])cl......