总括

pandas里对索引的操作主要有

  1. DataFrame.rename
  2. DataFrame.rename_axis
  3. DataFrame.reindex
  4. DataFrame.reindex_axis
  5. DataFrame.reset_index
  6. pandas.Index.reindex
  7. pandas.Index.set_names
    其中1和2,是对索引的更改,原索引是不变的.3和4是增加和减少了索引,如果索引存在则还按照原来的值,如果不存在则填充空值.5是重新给索引.
    1~5都返回的是数据框
    6~7返回的是索引

rename

DataFrame.rename(index=None, columns=None, **kwargs)

参数

  1. index, columns : scalar, list-like, dict-like or function, optional(Function/dict值必须是一对一)
  2. copy : boolean, default True(复制底层函数)
  3. inplace : boolean, default False(替换原对象)
  4. level:int or level name, default None(多层索引时使用)

返回

1.renamed : DataFrame (new object)

例子

In [1]: import pandas as pd...: df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})...: df
Out[1]: A  B
0  1  4
1  2  5
2  3  6In [2]: df.rename(index={0:3,1:4,2:5}, columns={"A": "a", "C": "c"})
Out[2]: a  B
3  1  4
4  2  5
5  3  6

rename_axis

DataFrame.rename_axis(mapper, axis=0, copy=True, inplace=False)

参数

  1. mapper : scalar, list-like, dict-like or function, optional
  2. axis : int or string, default 0
  3. copy : boolean, default True
  4. inplace : boolean, default False

返回

  1. renamed : type of caller

例子

In [1]: import pandas as pd...: df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})...: df
Out[1]: A  B
0  1  4
1  2  5
2  3  6In [2]: df.rename_axis({0:3,1:4,2:5})
Out[2]: A  B
3  1  4
4  2  5
5  3  6In [3]: df.rename_axis({"A": "a", "C": "c"},axis=1)
Out[3]: a  B
0  1  4
1  2  5
2  3  6

reindex

可以用来插值

DataFrame.reindex(index=None, columns=None, **kwargs)

参数

  1. index, columns : array-like, optional (can be specified in order, or as
  2. method : {None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}, optional(填充设置)
  3. copy : boolean, default True
  4. level : int or name
  5. fill_value : scalar, default np.NaN
  6. limit : int, default None
  7. tolerance : optional

返回

  1. reindexed : DataFrame

例子

import pandas as pd
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
df
Out[1]: A  B
0  1  4
1  2  5
2  3  6df.reindex(index=(1,2,3))
Out[2]: A    B
1  2.0  5.0
2  3.0  6.0
3  NaN  NaNdf.reindex(columns=("B","C"))
Out[3]: B   C
0  4 NaN
1  5 NaN
2  6 NaN

reindex_axis

DataFrame.reindex_axis(labels, axis=0, method=None, level=None, copy=True, limit=None, fill_value=nan)

参数

  1. labels : array-like
  2. axis : {0 or ‘index’, 1 or ‘columns’}
  3. method : {None, ‘backfill’/’bfill’, ‘pad’/’ffill’, ‘nearest’}, optional
  4. copy : boolean, default True
  5. level : int or name
  6. limit : int, default None
  7. tolerance : optional

返回

  1. reindexed : DataFrame

例子

In [1]: import pandas as pd...: df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})...: df
Out[1]: A  B
0  1  4
1  2  5
2  3  6In [2]: df.reindex_axis((1,2,3))
Out[2]: A    B
1  2.0  5.0
2  3.0  6.0
3  NaN  NaNIn [3]: df.reindex_axis(("B","C"),axis=1)
Out[3]: B   C
0  4 NaN
1  5 NaN
2  6 NaN

reset_index

DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')

参数

  1. level : int, str, tuple, or list, default None
  2. drop : boolean, default False
  3. inplace : boolean, default False
  4. col_level : int or str, default 0
  5. col_fill : object, default ‘’

返回

  1. resetted : DataFrame

例子

In [1]: import pandas as pd...: df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})...: df=df.reindex_axis((1,2,3))...: df
Out[1]: A    B
1  2.0  5.0
2  3.0  6.0
3  NaN  NaNIn [2]: df.reset_index()
Out[2]: index    A    B
0      1  2.0  5.0
1      2  3.0  6.0
2      3  NaN  NaN

set_index

set_index方法是将某一列做为索引,而reset_index是从新按int升序的方式做了一个索引

Index.reindex

Index.reindex(target, method=None, level=None, limit=None, tolerance=None)

参数

  1. target : an iterable

返回

  1. new_index : pd.Index
  2. indexer : np.ndarray or None

例子

In [1]: import pandas as pd...: df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})...: df
Out[1]: A  B
0  1  4
1  2  5
2  3  6In [2]: df.index.reindex((1,2,3))
Out[2]: (Int64Index([1, 2, 3], dtype='int64'), array([ 1,  2, -1], dtype=int64))

Index.set_names

Index.set_names(names, level=None, inplace=False)

Pandas index详解相关推荐

  1. Pandas知识点-详解行列级批处理函数apply

    Pandas知识点-详解行列级批处理函数apply 在Pandas中,DataFrame和Series等对象需要执行批量处理操作时,可以借用apply()函数来实现. apply()的核心功能是实现& ...

  2. Python 数据合并方法 —— Pandas concat() 详解

    详解concat 参数说明 concat说明 ignore_index 示例 Example Reference 参数说明 pandas.concat(objs, axis=0, join='oute ...

  3. python csv pandas_Python Pandas——Read_csv详解

    目前最常用的数据保存格式可能就是CSV格式了,数据分析第一步就是获取数据,怎样读取数据至关重要. 本文将以pandas read_csv方法为例,详细介绍read_csv数据读取方法.再数据读取时进行 ...

  4. pandas.read_csv() 详解与如何合适的读取行序号与列名

    作为常用的函数,pandas.read_csv() 用于读取各种数据文件(.dat.txt.csv等),在这里做一个详细的解释. 灵活运用index_col与header准确的读取csv文件的行索引与 ...

  5. Python之Pandas连接详解

    一.关系型连接 1. 连接的基本概念 把两张相关的表按照某一个或某一组键连接起来是一种常见操作,例如学生期末考试各个科目的成绩表按照姓名和班级连接成总的成绩表,又例如对企业员工的各类信息表按照员工ID ...

  6. pandas.pivot_table详解

    想必大家都用过excel, 肯定会熟悉excel中的透视表, python中pandas.pivot就是在DataFrame表格中实现这个操作, 什么? 连透视表都不知道? 没事,往下看就知道了 目录 ...

  7. python pandas库详解_Pandas 库的详解和使用补充

    pandas 库总体说明 Pandas 基亍 NumPy.SciPy 补充了大量数据操作功能,能实现统计.凾组.排序.透规 表,可以代替 Excel 的绛大部凾功能. Pandas 主要有 2 种重要 ...

  8. Pandas MultiIndex 详解

    文章目录 1. 什么是Index 2. 什么是MultiIndex 2.1 levels和codes的意义 1. 什么是Index   学习MultiIndex前,首先要看一下Index.   Ind ...

  9. pandas用法详解

    一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2.导入CSV或者xlsx文件 ...

最新文章

  1. python close函数_Matplotlib的close()函数使Tkinter GUI窗口关闭
  2. linux培训描述,【linux培训班】关于linux系统记录和描述进程的分析
  3. node python 速度_为什么python在递归上比node.js慢得多
  4. python合并多个csv文件_python pandas合并多个csv文件
  5. mysql 表结构 增删改查_mysql学习【第3篇】:数据库之增删改查操作
  6. Firebug控制台详解[转]
  7. Linux磁盘分区及要求
  8. python从数据库取数据 显示字段名_如何在python中将SQL数据库中的字段名放入列表中...
  9. 从Powershell ***脚本学到的如何执行后台runspace~
  10. poj 2417 Discrete Logging
  11. 好久没有写blog了。。。
  12. rest_frameword学前准备
  13. php 省市区县 四级联动,GitHub - yupoxiong/region: ThinkPHP5/6省市区(县)街道四级联动扩展...
  14. 《算法和数据结构》题海战术篇
  15. shell脚本中的逻辑判断
  16. 嵌入式系统架构设计师的理解
  17. JavaScript——实现九九乘法表
  18. 网上做什么挣钱?7个能赚钱的项目,个个都能发财!
  19. 【IT运维小知识】安全组是什么意思?
  20. 三星可能已后悔离开中国制造,它在越南的工厂无奈大幅减产

热门文章

  1. Java计算1除以3结果为0_关于java:Int division:为什么1/3 == 0的结果?
  2. Python演示SQLite数据库系统表sqlite_sequence的作用与操作
  3. 淡定!不要因为纳入了高考和二级考试甚至极个别小学课程就盲目夸大Python!...
  4. Python编程中一定要注意的那些“坑”(二)
  5. java9 javafx_无法在java 9下针对java 8构建javafx应用程序
  6. python经典教程游戏_使用pygame制作经典小游戏:五子棋
  7. mysql一秒查询次数_单个select语句实现MySQL查询统计次数
  8. python时间格式转换为美式日期_如何将日期时间格式的排列转换为python中的打印?...
  9. 计算机名称 steam,Steam电脑配置排名:前19名都是N卡
  10. python的opencv库_Python使用OpenCV