【Pandas库】(4) 索引操作--重新生成索引
各位同学好,今天和大家分享一下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) 索引操作--重新生成索引相关推荐
- Pandas索引操作及高级索引——reindex()方法
文章目录 索引对象 多个数据结构之间共享index类对象 is与==的区别 重置索引--reindex() 索引操作 Series的索引操作 切片 不连续索引 布尔型索引 DataFrame的索引操作 ...
- python read_excel 参数_详解pandas库pd.read_excel操作读取excel文件参数整理与实例
详解pandas库pd.read_excel操作读取excel文件参数整理与实例 来源:中文源码网 浏览: 次 日期:2019年11月5日 详解pandas库pd.read_excel操作 ...
- python read_excel header_详解pandas库pd.read_excel操作读取excel文件参数整理与实例
除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...
- pandas库--DataFrame常用操作
文章目录 前言 一.DataFrame创建 1.基于列表创建 2.基于字典创建 二.查询 1.df直接查询 ① 查询一列 ② 查询多列 ③ 条件查询 2.query()方法 ① 条件查询 ② 带有变量 ...
- 【python】pandas库pd.read_excel操作读取excel文件参数整理与实例
除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...
- 【Python学习系列十五】pandas库DataFrame行列操作使用方法
参考:http://pandas.pydata.org/pandas-docs/stable/api.html#dataframe data['w'] #选择表格中的'w'列,使用类字典属性,返回的是 ...
- 【python】pandas库pd.to_excel操作写入excel文件参数整理与实例
excel的写入函数为pd.DataFrame.to_excel():必须是DataFrame写入excel, 即Write DataFrame to an excel sheet. to_excel ...
- SQL Server 重新组织生成索引
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引/统计信息 概述 无论何时对基础数据执行插入.更新或删除操作,SQL Server 数据库引擎都会自动维护索引.随着时间的推移 ...
- 重新组织和重新生成索引(转载)
索引是数据库引擎中针对表(有时候也针对视图)建立的特别数据结构,用来帮助查找和整理数据.索引的重要性体现在能够使数据库引擎快速返回查询 结果.当对索引所在的基础数据表进行修改时(包括插入.删除和更新等 ...
最新文章
- ssm 异常捕获 统一处理_SSM 统一异常处理
- 开始接触QM(Quality Management)
- Artifact ssmbuild:war exploded: Error during artifact deployment. See server log for details
- Web安全(下)---主动类安全产品技术分析
- 公网IP和私有IP的区别和用途
- apache 错误日志 File does not exist: 解决办法
- 67 个JavaScript和CSS实用工具、库与资源
- 直接上干货!技术水平真的很重要!复习指南
- 栈溢出笔记1.3 准备Shellcode
- 数据结构学习笔记:利用栈实现进制转换
- ScheduledExecutorService 延迟 / 周期执行线程池
- 管家婆破解版7.1 软件下载
- 一台显示器分成双屏_华硕显示器贴心相伴:云办公、云学习宅家无忧
- Z-001 开关电源共模电感计算的方法详解
- iOS 13 SceneDelegate适配
- 日本小学生走向APP开发私塾 智能手机迫切改变IT教育——日本经济新闻报道
- excel 筛选重复项_列表项的Excel筛选器:2011年“鲨鱼周”
- Win10更新的若干弊端以及关闭Win10更新方法
- Android ListView异步获取网络图片
- 大数据高级开发工程师——Spark学习笔记(6)