【pandas】set_index函数详解
参数
- keys : 要设置为索引的列名(如有多个应放在一个列表里)
- drop : 将设置为索引的列删除,默认为True
- append : 是否将新的索引追加到原索引后(即是否保留原索引),默认为False
- inplace : 是否在原DataFrame上修改,默认为False
- verify_integrity : 是否检查索引有无重复,默认为False
示例
参数keys
keys指定的列将被设置为索引
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['David', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
输出:
参数drop
将设置为索引的列删除,默认为True
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['David', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
print('\n')data2 = data.set_index(keys='Name', drop=False)
print(data2)
输出:
参数append
原索引是否保留。True为保留,默认为False
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['David', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
print('\n')data2 = data.set_index(keys='Name', append=True)
print(data2)
输出:
参数inplace
是否在原DataFrame上修改,默认为False
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['David', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
print('\n')data2 = data.set_index(keys='Name', inplace=True)
print(data2)
print(data)
输出:
参数verify_integrity
是否检查索引有无重复,默认为False,若设置为True会影响程序性能,慎用
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['Chris', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
print('\n')data2 = data.set_index(keys='Name', verify_integrity=True)
print(data2)
输出:
注意:虽然输出的DataFrame中Name与其他列的列名不在同一行,好像属于两个不同的level,其实并不是,如果我们再用reset_index将Name取消索引,并尝试将它插入第二级(level=1),我们会发现Name最后和其他列名同属第一级(关于参数的含义请参考reset_index函数详解):
import pandas as pddata = pd.DataFrame([['Alice', 'Math', 93], ['Bob', 'Physics', 98], ['Chris', 'Chemistry', 96], ['Chris', 'Biology', 90]],columns=['Name', 'Subject', 'Score'])
print(data)
print('\n')data1 = data.set_index(keys='Name')
print(data1)
print('\n')data2 = data1.reset_index(col_level=2)
print(data2)
输出:
【pandas】set_index函数详解相关推荐
- blankcount函数python,Python pandas常用函数详解
本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...
- pandas常用函数详解
1 import语句 import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime im ...
- python pandas常用函数_Python pandas常用函数详解
df.duplicated() 返回各行是否是上一行的重复行 df.drop_duplicates() 删除重复行,如果需要按照列过滤,参数选填['col1', 'col2',-]df.fillna( ...
- pythonpandas函数详解_对pandas中Series的map函数详解
Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...
- Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略
Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...
- 【Pandas 数据查找函数 详解】
本文介绍了Pandas数据查找常用函数,掌握了这些函数的应用,让你在数据处理时,手到擒来,游刃有余. 目录 一.查找数据位置 s.str.find()和s.str.index()函数 二.数据的查找判 ...
- pandas:案例详解 rename函数 修改列名和行名
pandas:案例详解rename函数 修改列名和索引 rename函数简介 0 构建学习数据 1 修改索引两种方式 2 修改列名两种方式 3 是否替换原列表 3 pandas 字母转换大小写 3 使 ...
- [Python3]pandas.merge用法详解
摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的 ...
- pytorch函数详解
pytorch函数详解 在typora这里写之后复制到简书上 1. torchvision 1.1 transforms.Compose(transforms) 把几个转换组合 example: fr ...
- C语言网络编程:accept函数详解
文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...
最新文章
- C++ Primer 5th笔记(chap 13 拷贝控制)综述
- 【运营】“顶级运营”最强速成攻略!目前国内不超过200人!
- redis学习(四) 登录和cookie缓存
- java 递归函数_浅谈java递归函数
- Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
- loadRunner目录分析二
- 如何组合来自多个SQL表的结果(提示:有三种方式)
- linux 帐号 配置sftp_Linux 下sftp配置之密钥方式登录详解
- CPU密集型和I/O密集型
- Atitit 从api的使用区分工程师级别 高级 中级 初级工程师常使用的api与框架类库 目录 1. 初级工程师使用的api和框架类库ssm	1 2. 中级工程师常使用的api和框架类库	1 3.
- PowerBuilder 2017R3安装指南2021最新
- 斗鱼直播间弹幕爬取2020年最新python
- 神奇宝贝服务器服务器修改器,pkhex修改器最新版
- b站黑马程序员的python怎么样_如何评价传智播客旗下的黑马程序员?
- 云流化如何实现多人线上协作的?
- 2021年12月电子学会图形化四级编程题解析含答案:聪明的小猫
- javascript英语单词音节拆分_英语连读时拆分中间单词吗?
- linux下的ld命令(1)
- 记一次rsyslog日志记录失败的解决过程
- ABP中服务接口Web.Host部署踩坑
热门文章
- linux命令sm,Linux系统命令和使用技巧8则
- 伊诺伊香槟分校计算机世界排名,伊利诺伊大学香槟分校世界排名及专业排名汇总(QS世界大学排名版)...
- 【具有独到技术的软件卸载工具】
- Windows 10 error code 0x80072efd
- FFMPEG视频编码 NVIDIA 和 INTEL 硬件加速 x265 8bit 和 10bit
- 计算机主板chipset中的北桥和南桥
- php遵义旅游管理系统毕业设计源码091801
- 工业级POE交换机、企业级交换机、普通交换机之间各区别?
- 使用LL库开发STM32:UART基础使用
- 句子成分分析(C++)