各位同学好,今天和大家分享一下pandas库的索引操作--重新生成索引。

本文主要介绍如何重新生成Series类型DataFrame类型的索引。

(1)Series类型重新生成索引

方法: 变量 = Series名.reindex([索引名])  

采用该方法需要使用一个变量来接收返回值。重新生成索引的方法不会直接修改原数据,需要有一个变量来接收修改后的结果。

如下代码,由于在定义Series类型数据时,ps1中没有出现索引名'f',因此在重新生成索引时,添加的索引'f'对应的值是nan。

import pandas as pd  #导入pandas库
# 生成一个Series数据,指定索引名
ps1 = pd.Series(range(1,6),index=['a','b','c','d','e'])
# 对ps1的索引名重新索引
ps2 = ps1.reindex(['e','d','c','b','a','f'])

为了便于大家理解重新索引的方法,我再举个例子。

首先定义了一个元素从1到5的Series类型数据ps1,ps1默认索引是数值类型的0、1、2...。索引重新生成时,'a'、'b'、'c'...等索引均没在ps1中出现,因此ps2接收的重新索引结果都为nan空值。要注意的是,ps3接收的结果也是nan空值,是因为重新索引时的'0'、'1'、'2'...都是字符串类型,而ps1中的索引是数值型的0、1、2...,这个不要混淆,一定要注意索引名。

import pandas as pd  #导入pandas库
ps1 = pd.Series(range(1,6))  # 生成一个元素为1到5的Series类型数据
# 由于ps1中索引名没有出现过a,b,c...,因此ps3都是nan
ps2 = ps1.reindex(["a","b","c","d","e",'f'])
# ps1中的索引是数值类型的0、1、2...,重新索引时""
ps3 = ps1.reindex(["0","1","2","3","4"])
# ps4 更改正确
ps4 = ps1.reindex([4,3,2,1,0])

(2)DataFrame类型重新生成索引

重新生成行索引: 新变量 = 变量名.reindex([行索引名])

重新生成列索引: 新变量 = 变量名.reindex(columns=[列索引名])

首先讨论一下重新生成行索引,重新定义行索引不会直接修改原值,需要有一个新的变量来接收更改后的数据。我定义了一个DataFrame类型数据,命名pd1,它的行索引为'a','b','c',列索引为"A","B","C"。重新指定行索引,pd2多指定了一个'd'索引,然而'd'并没有在pd1中出现,因此'd'索引对应的值也是nan空值。pd3实现了重新指定行索引,索引对应的值也一起换了位置。

import pandas as pd
import numpy as np
# 使用np库生成1、2、...、9共九个数,使用reshape(行数,列数)函数,使它变成三行三列
pd1 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
pd2 = pd1.reindex(['a','b','c','d']) #多指定一行,对应行对象是nan
pd3 = pd1.reindex(["c","b","a"])   #行互换位置

我们再来看一下重新定义列索引,重新定义列索引不会直接修改原值,需要有一个新的变量来接收更改后的数据。我仍使用上面定义的pd1数据,pd4成功交换了列的索引位置,然而在pd5中,我多指定了一个列索引'D',这个索引没有在pd1中出现过,因此在重新索引后的结果中,'D'列的值都是nan空值。

import pandas as pd
import numpy as np
# 使用np库生成1、2、...、9共九个数,使用reshape(行数,列数)函数,使它变成三行三列
pd1 = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b","c"],columns=["A","B","C"])
pd4 = pd1.reindex(columns=["C","B","A"])  #列交换位置
pd5 = pd1.reindex(columns=["A","B","C","D"])  #多添加一列

【Pandas库】(4) 索引操作--重新生成索引相关推荐

  1. Pandas索引操作及高级索引——reindex()方法

    文章目录 索引对象 多个数据结构之间共享index类对象 is与==的区别 重置索引--reindex() 索引操作 Series的索引操作 切片 不连续索引 布尔型索引 DataFrame的索引操作 ...

  2. python read_excel 参数_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    详解pandas库pd.read_excel操作读取excel文件参数整理与实例 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解pandas库pd.read_excel操作 ...

  3. python read_excel header_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  4. pandas库--DataFrame常用操作

    文章目录 前言 一.DataFrame创建 1.基于列表创建 2.基于字典创建 二.查询 1.df直接查询 ① 查询一列 ② 查询多列 ③ 条件查询 2.query()方法 ① 条件查询 ② 带有变量 ...

  5. 【python】pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  6. 【Python学习系列十五】pandas库DataFrame行列操作使用方法

    参考:http://pandas.pydata.org/pandas-docs/stable/api.html#dataframe data['w'] #选择表格中的'w'列,使用类字典属性,返回的是 ...

  7. 【python】pandas库pd.to_excel操作写入excel文件参数整理与实例

    excel的写入函数为pd.DataFrame.to_excel():必须是DataFrame写入excel, 即Write DataFrame to an excel sheet. to_excel ...

  8. SQL Server 重新组织生成索引

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引/统计信息 概述 无论何时对基础数据执行插入.更新或删除操作,SQL Server 数据库引擎都会自动维护索引.随着时间的推移 ...

  9. 重新组织和重新生成索引(转载)

    索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据.索引的重要性体现在能够使数据库引擎快速返回查询 结果.当对索引所在的基础数据表进行修改时(包括插入.删除和更新等 ...

最新文章

  1. ssm 异常捕获 统一处理_SSM 统一异常处理
  2. 开始接触QM(Quality Management)
  3. Artifact ssmbuild:war exploded: Error during artifact deployment. See server log for details
  4. Web安全(下)---主动类安全产品技术分析
  5. 公网IP和私有IP的区别和用途
  6. apache 错误日志 File does not exist: 解决办法
  7. 67 个JavaScript和CSS实用工具、库与资源
  8. 直接上干货!技术水平真的很重要!复习指南
  9. 栈溢出笔记1.3 准备Shellcode
  10. 数据结构学习笔记:利用栈实现进制转换
  11. ScheduledExecutorService 延迟 / 周期执行线程池
  12. 管家婆破解版7.1 软件下载
  13. 一台显示器分成双屏_华硕显示器贴心相伴:云办公、云学习宅家无忧
  14. Z-001 开关电源共模电感计算的方法详解
  15. iOS 13 SceneDelegate适配
  16. 日本小学生走向APP开发私塾 智能手机迫切改变IT教育——日本经济新闻报道
  17. excel 筛选重复项_列表项的Excel筛选器:2011年“鲨鱼周”
  18. Win10更新的若干弊端以及关闭Win10更新方法
  19. Android ListView异步获取网络图片
  20. 大数据高级开发工程师——Spark学习笔记(6)

热门文章

  1. Android 使用 ADB 命令录制屏幕上的视频
  2. Oracle分页存储过程
  3. [SDOI2009]晨跑
  4. BNUOJ 52305 Around the World 树形dp
  5. Android 趣味应用—— 短信编辑器
  6. 经典贪心法:时间序列问题及其全局最优性证明
  7. java压缩解压缩类实例[转]
  8. C++查找算法(更新中)
  9. java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
  10. unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)