一 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()函数的更多相关文章

  1. 区别 |python-pandas库set_index、reset_index用法区别

    1.set_index() 作用:DataFrame可以通过set_index方法,将普通列设置为单索引/复合索引. 格式:DataFrame.set_index(keys, drop=True, a ...

  2. pandas的set_index和reset_index方法

    import pandas as pd data = pd.DataFrame(np.arange(1,10).reshape(3,3),index=["a","b&qu ...

  3. pandas set_index和reset_index的用法

    1.set_index DataFrame可以通过set_index方法,可以设置单索引和复合索引. DataFrame.set_index(keys, drop=True, append=False ...

  4. python set_index与reset_index的妙用

  5. 从Excel到Python:最常用的36个Pandas函数

    本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...

  6. 关于Excel,你一定用的到的36个Python函数

    从Excel到Python:最常用的36个Pandas函数关于Excel,你一定用的到的36个Python函数 本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗 ...

  7. python中数据分析常用函数整理

    一. apply函数 作用:对 DataFrame 的某行/列应用函数之后,Apply 返回一些值.函数既可以使用默认的,也可以自定义.注意:在第二个输出中应用 head() 函数,因为它包含了很多行 ...

  8. 第三课 创建函数 - 从EXCEL读取 - 导出到EXCEL - 异常值 - Lambda函数 - 切片和骰子数据

    第 3 课   获取数据 - 我们的数据集将包含一个Excel文件,其中包含每天的客户数量.我们将学习如何对 excel 文件进​​行处理.准备数据 - 数据是有重复日期的不规则时间序列.我们将挑战数 ...

  9. pandas模块常用函数解析之Series(详解)

    pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...

随机推荐

  1. 如何将DataTable转换成List<T>

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...

  2. spark(3)

    0.spark -------------------------------------------- transformation map filter repartition spark核心AP ...

  3. Java JPA设置默认值、Timestamp设置、自动获取时间

    设置默认值 @Column(name="state",columnDefinition="tinyint default 0") private Integer ...

  4. CentOS 7 查看硬盘情况

    用命令: lsblk                                  查看分区和磁盘 df -h                                        查看整 ...

  5. Vscode窗口被覆盖

    用Vscode用的好好的,突然就发现窗口被覆盖了 解决办法如下:1.ctrl+shift+p 快捷键打开如下界面, 2.接着在搜索框中输入settings,点击首先项:打开设置(json) 3.再se ...

  6. 【ARC101F】Robots and Exits 树状数组优化DP

    ARC101F Robots and Exits 树状数组 有 $ n $ 个机器人和 $ m $ 个出口.这 $ n $ 个机器人的初始位置是 $ a_1,a_2.....a_n $ ,这 $ m ...

  7. 真正解决iframe高度自适应问题

    1.前言 解决iframe高度自适应问题有两种方法1.pym2.手动设置iframe的高度 本文主要是总结第二种实现方式,因为第一种pym.js插件我没用懂 如果使用iframe时,遇到以下的需求: ...

  8. CSS3——制作人物走路的小动画

    一个很简单的小动画,但是还挺有意思的,就是找这种图片很麻烦,我这里把我找的一张图片贴上来,这张图片是我在网上找的,又改了背景色和大小. <!DOCTYPE html> <html l ...

  9. 第七周作业—N42-虚怀若谷

    一.简述OSI七层模型和TCP/IP五层模型 1. OSI七层模型 物理层:二进制传输,为启动.维护以及关闭物理链路定义了电气规范.机械规范.过程规范和功能规范:实际的最终信号的传输是通过物理层实现的 ...

  10. node创建项目,要ejs模板引擎,不要jade怎么办?

    创建项目时:express ejs blog,生成的是.jade文件怎么办?我想要的是ejs的呀 上述语句不仅名字不对,生成文件的格式也不是我想要的. 不妨试试:express -e blog 这下就 ...