set_index()与reset_index()函数
一 set_index()函数
1 主要是理解drop和append参数,注意与reset_index()参数的不同.
import pandas as pd
df = pd.DataFrame({'a': range(4),
'b': range(4, 0, -1),
'c': ['one', 'one', 'two', 'two'],
'd': ['a','b','c','d']})
print(df)
# a b c d
# 0 0 4 one a
# 1 1 3 one b
# 2 2 2 two c
# 3 3 1 two d
# set_index()的drop参数默认为True,如下即默认将普通列c列置为索引列后,将原先的普通列c列删除.
# 注意它与reset_index()的drop不同,reset_index()中的drop默认为False,且这个drop为True时,删除的是原先的index列
df.set_index(['c'], inplace=True)
print(df)
# a b d
# c
# one 0 4 a
# one 1 3 b
# two 2 2 c
# two 3 1 d
# append参数为True,会保留原先的索引,为False时,新设置的索引会覆盖原先的索引,它类似与reset_index()中的drop.
df.set_index(['b'], inplace=True, append=True)
print(df)
# a d
# c b
# one 4 0 a
# 3 1 b
# two 2 2 c
# 1 3 d
二 reset_index()函数
1 重置索引后,drop参数默认为False,想要删除原先的索引列要置为True.想要在原数据上修改要inplace=True.特别是不赋值的情况必须要加,否则drop无效.
all_user_repay.reset_index(drop=True,inplace=True)
df1 = pd.DataFrame({'A': ['A0', 'A1'],
'B': ['B0', 'B1'],
'C': ['C0', 'C1'],
'D': ['D0', 'D1']})
df2 = pd.DataFrame({'A': ['A4', 'A5'],
'B': ['B4', 'B5'],
'C': ['C4', 'C5'],
'D': ['D4', 'D5']})
frames = [df1, df2]
result = pd.concat(frames)
print(result.reset_index())
# index A B C D
# 0 0 A0 B0 C0 D0
# 1 1 A1 B1 C1 D1
# 2 0 A4 B4 C4 D4
# 3 1 A5 B5 C5 D5
print(result.reset_index(drop=True))
# A B C D
# 0 A0 B0 C0 D0
# 1 A1 B1 C1 D1
# 2 A4 B4 C4 D4
# 3 A5 B5 C5 D5
Series.reset_index()
注意参数level默认移除原先的全部索引,即将原先的全部索引都置为普通列.
如果给level赋值,则只有所赋值的索引列置为普通列,其余的留下做索引列.
参考:http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.reset_index.html?highlight=reset_index#pandas.Series.reset_index
arrays = [np.array(['bar', 'bar', 'baz', 'baz']),
np.array(['one', 'two', 'one', 'two'])]
s2 = pd.Series(
range(4), name='foo',
index=pd.MultiIndex.from_arrays(arrays,
names=['a', 'b']))
print(s2)
#这里如果想要保留修改不能用inplace参数,只能再赋给另一个引用
print(s2.reset_index(level='a'))
print(s2.reset_index())
print(type(s2))
# a b
# bar one 0
# two 1
# baz one 2
# two 3
# Name: foo, dtype: int64
# a foo
# b
# one bar 0
# two bar 1
# one baz 2
# two baz 3
# a b foo
# 0 bar one 0
# 1 bar two 1
# 2 baz one 2
# 3 baz two 3
# <class 'pandas.core.series.Series'>
2 把某一列设为索引列
df.set_index('列名',inplace=True)
set_index()与reset_index()函数的更多相关文章
- 区别 |python-pandas库set_index、reset_index用法区别
1.set_index() 作用:DataFrame可以通过set_index方法,将普通列设置为单索引/复合索引. 格式:DataFrame.set_index(keys, drop=True, a ...
- pandas的set_index和reset_index方法
import pandas as pd data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b&qu ...
- pandas set_index和reset_index的用法
1.set_index DataFrame可以通过set_index方法,可以设置单索引和复合索引. DataFrame.set_index(keys, drop=True, append=False ...
- python set_index与reset_index的妙用
- 从Excel到Python:最常用的36个Pandas函数
本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...
- 关于Excel,你一定用的到的36个Python函数
从Excel到Python:最常用的36个Pandas函数关于Excel,你一定用的到的36个Python函数 本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗 ...
- python中数据分析常用函数整理
一. apply函数 作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值.函数既可以使用默认的,也可以自定义.注意:在第二个输出中应用 head() 函数,因为它包含了很多行 ...
- 第三课 创建函数 - 从EXCEL读取 - 导出到EXCEL - 异常值 - Lambda函数 - 切片和骰子数据
第 3 课 获取数据 - 我们的数据集将包含一个Excel文件,其中包含每天的客户数量.我们将学习如何对 excel 文件进行处理.准备数据 - 数据是有重复日期的不规则时间序列.我们将挑战数 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
随机推荐
- jQuery之操作样式的css方法
注意点都在代码里 <style> div { width: 200px; height: 200px; background-color: pink; } </style> & ...
- SpringAOP用到了什么代理,以及动态代理与静态代理的区别
spring aop (面向切面)常用于数据库事务中,使用了2种代理. jdk动态代理:对实现了接口的类生成代理对象.要使用jdk动态代理,要求类必须要实现接口. cglib代理:对类生成代理对象. ...
- win10常用的dos命令
1.calc:启动计算器 2.appwiz.cpl:程序和功能 3.certmgr.msc:证书管理实用程序 4.charmap:启动字符映射表 5.chkdsk.exe:Chkdsk磁盘检查(管理员 ...
- iOS之Run Loop详解
转自标哥的技术博客(www.henishuo.com) 前言 做了一年多的IOS开发,对IOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情.想学好一 ...
- python之路之——操作系统的发展历史
阅读目录 手工操作 —— 穿孔卡片 批处理 —— 磁带存储和批处理系统 多道程序系统 分时系统 实时系统 通用操作系统 操作系统的进一步发展 操作系统的作用 手工操作 —— 穿孔卡片 1946年第一台 ...
- loadkeys - 调入键盘翻译表
总览 (SYNOPSIS) loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ] ...
- PAT Advanced 1007 Maximum Subsequence Sum (25 分)
Given a sequence of K integers { N1, N2, ..., NK }. A continuous subsequence is defined to ...
- 【学习】018 Spring框架
Spring的概述 Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架. 且可以和其他框架一起使用:Spring与Struts, Spring与hibernate (起到整合(粘合)作 ...
- Git之旅(1):安装git
一.在windows中安装git git官网:https://git-scm.com/downloads 二.在centos系统安装git 2.1 配置base源和epel源 # cat /etc/y ...
- python类和self解析
在介绍Python的self用法之前,先来介绍下Python中的类和实例……我们知道,面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用 ...