参数

  1. keys : 要设置为索引的列名(如有多个应放在一个列表里)
  2. drop : 将设置为索引的列删除,默认为True
  3. append : 是否将新的索引追加到原索引后(即是否保留原索引),默认为False
  4. inplace : 是否在原DataFrame上修改,默认为False
  5. 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函数详解相关推荐

  1. blankcount函数python,Python pandas常用函数详解

    本文研究的主要是pandas常用函数,具体介绍如下. 1 import语句 2 文件读取 df = pd.read_csv(path='file.csv') 参数:header=None 用默认列名, ...

  2. pandas常用函数详解

    1 import语句 import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime im ...

  3. python pandas常用函数_Python pandas常用函数详解

    df.duplicated() 返回各行是否是上一行的重复行 df.drop_duplicates() 删除重复行,如果需要按照列过滤,参数选填['col1', 'col2',-]df.fillna( ...

  4. pythonpandas函数详解_对pandas中Series的map函数详解

    Series的map方法可以接受一个函数或含有映射关系的字典型对象. 使用map是一种实现元素级转换以及其他数据清理工作的便捷方式. (DataFrame中对应的是applymap()函数,当然Dat ...

  5. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略

    Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...

  6. 【Pandas 数据查找函数 详解】

    本文介绍了Pandas数据查找常用函数,掌握了这些函数的应用,让你在数据处理时,手到擒来,游刃有余. 目录 一.查找数据位置 s.str.find()和s.str.index()函数 二.数据的查找判 ...

  7. pandas:案例详解 rename函数 修改列名和行名

    pandas:案例详解rename函数 修改列名和索引 rename函数简介 0 构建学习数据 1 修改索引两种方式 2 修改列名两种方式 3 是否替换原列表 3 pandas 字母转换大小写 3 使 ...

  8. [Python3]pandas.merge用法详解

    摘要 数据分析与建模的时候大部分时间在数据准备上,包括对数据的加载.清理.转换以及重塑.pandas提供了一组高级的.灵活的.高效的核心函数,能够轻松的将数据规整化.这节主要对pandas合并数据集的 ...

  9. pytorch函数详解

    pytorch函数详解 在typora这里写之后复制到简书上 1. torchvision 1.1 transforms.Compose(transforms) 把几个转换组合 example: fr ...

  10. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

最新文章

  1. C++ Primer 5th笔记(chap 13 拷贝控制)综述
  2. 【运营】“顶级运营”最强速成攻略!目前国内不超过200人!
  3. redis学习(四) 登录和cookie缓存
  4. java 递归函数_浅谈java递归函数
  5. Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
  6. loadRunner目录分析二
  7. 如何组合来自多个SQL表的结果(提示:有三种方式)
  8. linux 帐号 配置sftp_Linux 下sftp配置之密钥方式登录详解
  9. CPU密集型和I/O密集型
  10. Atitit 从api的使用区分工程师级别 高级 中级 初级工程师常使用的api与框架类库 目录 1. 初级工程师使用的api和框架类库ssm 1 2. 中级工程师常使用的api和框架类库 1 3.
  11. PowerBuilder 2017R3安装指南2021最新
  12. 斗鱼直播间弹幕爬取2020年最新python
  13. 神奇宝贝服务器服务器修改器,pkhex修改器最新版
  14. b站黑马程序员的python怎么样_如何评价传智播客旗下的黑马程序员?
  15. 云流化如何实现多人线上协作的?
  16. 2021年12月电子学会图形化四级编程题解析含答案:聪明的小猫
  17. javascript英语单词音节拆分_英语连读时拆分中间单词吗?
  18. linux下的ld命令(1)
  19. 记一次rsyslog日志记录失败的解决过程
  20. ABP中服务接口Web.Host部署踩坑

热门文章

  1. linux命令sm,Linux系统命令和使用技巧8则
  2. 伊诺伊香槟分校计算机世界排名,伊利诺伊大学香槟分校世界排名及专业排名汇总(QS世界大学排名版)...
  3. 【具有独到技术的软件卸载工具】
  4. Windows 10 error code 0x80072efd
  5. FFMPEG视频编码 NVIDIA 和 INTEL 硬件加速 x265 8bit 和 10bit
  6. 计算机主板chipset中的北桥和南桥
  7. php遵义旅游管理系统毕业设计源码091801
  8. 工业级POE交换机、企业级交换机、普通交换机之间各区别?
  9. 使用LL库开发STM32:UART基础使用
  10. 句子成分分析(C++)