一、获取索引 index

import pandas as ps
import numpy as npa1 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"],index=["a","b"])
print(a1,"\n","#"*50)#    A  B  C  D
# a  0  1  2  3
# b  4  5  6  7print(a1.index,"\n","#"*50) # 获取a1的行索引# Index(['a', 'b'], dtype='object')

二、设置索引 index

import pandas as ps
import numpy as npa1 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"],index=["a","b"])
print(a1,"\n","#"*50)#    A  B  C  D
# a  0  1  2  3
# b  4  5  6  7a1.index = ["x","z"] # 指定a1的行索引
print(a1,"\n","#"*50)#    A  B  C  D
# x  0  1  2  3
# z  4  5  6  7

三、重设索引 reindex()

import pandas as ps
import numpy as npa1 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"],index=["a","b"])
print(a1,"\n","#"*50)#    A  B  C  D
# a  0  1  2  3
# b  4  5  6  7print(a1.reindex(["x","y"]),"\n","#"*50) # 重新设置index(因为本身没有y索引的一行,故全为NaN)#      A    B    C    D
# x  0.0  1.0  2.0  3.0
# y  NaN  NaN  NaN  NaN


四、将列索引下的元素设置为行索引 set_index()

import pandas as ps
import numpy as npa1 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"],index=["a","b"])
print(a1,"\n","#"*50)#    A  B  C  D
# a  0  1  2  3
# b  4  5  6  7print(a1.set_index("A",drop=False),"\n","#"*50) # 将某列索引下的元素设置为行索引(内部参数drop等于假时被设置为索引的那一列元素将不会消失,为真时将会消失)
print(a1.set_index("A").index,"\n","#"*50) # 输出设定后的索引#    B  C  D
# A
# 0  1  2  3
# 4  5  6  7

五、去除重复的元素 unique()

import pandas as ps
import numpy as npa2 = ps.DataFrame(np.ones(8).reshape((2,4)),columns=["A","B","C","D"]) # 设置一个全为1的2*4的二维数组
print(a2,"\n","#"*50)#      A    B    C    D
# 0  1.0  1.0  1.0  1.0
# 1  1.0  1.0  1.0  1.0a2 = a2.set_index("A",drop=False) # 将A索引下的元素设置为行索引(索引可为相同的值)
print(a2,"\n","#"*50)print(a2.loc[1.0,"A"].unique(),"\n","#"*50) # unique()方法过掉重复的元素

六、复合索引 set_index([])

import pandas as ps
import numpy as npa2 = ps.DataFrame(np.ones(8).reshape((2,4)),columns=["A","B","C","D"]) # 设置一个全为1的2*4的二维数组(重新赋值)
a2 = a2.set_index(["A","B"],drop=False) # 复合索引,可以将多列设置为索引
print(a2,"\n","#"*50,"\n",a2.index) # 输出a2和它的索引

1、复合索引查找数值 loc
import pandas as ps
import numpy as npa3 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"])
print(a3,"\n","*"*50)
a3 = a3.set_index(["A","B"],drop=False) # 复合索引,可以将多列设置为索引
print(a3,"\n","*"*50)#      A  B  C  D
# A B
# 0 1  0  1  2  3
# 4 5  4  5  6  7print(a3.loc[0].loc[1,"C"],"\n","*"*50) # 通过loc方法一层一层索引到需要的数值


1、复合索引查找数值 swaplevel() + loc
import pandas as ps
import numpy as npa3 = ps.DataFrame(np.arange(8).reshape((2,4)),columns=["A","B","C","D"])
print(a3,"\n","*"*50)
a3 = a3.set_index(["A","B"],drop=False) # 复合索引,可以将多列设置为索引
print(a3,"\n","*"*50)#      A  B  C  D
# A B
# 0 1  0  1  2  3
# 4 5  4  5  6  7print(a3.swaplevel(),"\n","*"*50) # swaplevel() 将内索引和外索引调换位置#      A  B  C  D
# B A
# 1 0  0  1  2  3
# 5 4  4  5  6  7print(a3.swaplevel().loc[1,"C"]) # 用swaplevel() 方法调换了内外索引后就可以直接使用loc索引到需要的数值了



pandas索引和复合索引相关推荐

  1. Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面、索引行复合索引中的一个切面

    Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面.索引行复合索引中的一个切面 目录

  2. Pandas把dataframe的索引、复合索引变换为数据列:包含单索引到单列(重命名)、复合索引到多数据列、复合索引的其中一个水平变换为数据列、

    Pandas把dataframe的索引.复合索引变换为数据列:包含单索引到单列(重命名).复合索引到多数据列.复合索引的其中一个水平变换为数据列 目录

  3. is NULL , is NOT NULL 有时索引失效 || in 走索引, not in 索引失效 ||单列索引和复合索引 || 查看索引使用情况

    is NULL , is NOT NULL 有时索引失效 in 走索引, not in 索引失效 单列索引和复合索引 尽量使用复合索引,而少使用单列索引 数据库会选择一个最优的索引(辨识度最高索引)来 ...

  4. php复合索引,关于复合索引和单独索引的一个问题

    复合索引 1,shopid ctime EXPLAIN SELECT COUNT(*) FROM dc_order_menu_log WHERE shopid = 12 AND ctime > ...

  5. MySQL单列索引与复合索引选择

    单列索引和复合索引. 尽量使用复合索引,而少使用单列索引 . 创建复合索引 create index idx_name_sta_address on tb_seller(name, status, a ...

  6. 单一索引和复合索引区别及联系

    单一索引和复合索引区别及联系 - BABY的日志 - 网易博客  http://selectgoodboy.blog.163.com/blog/static/103212061201519111711 ...

  7. 数据库查询索引(sql单个索引和复合索引)

    数据库查询索引(sql单个索引和复合索引)http://www.bieryun.com/3380.html 当一条sql语句的查询涉及到多个字段,这个时候给每个字段加索引,数据库也只能够使用其中的一个 ...

  8. 联合索引(复合索引)和单个索引

    背景:  为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引 ...

  9. 索引、单列索引、复合索引、主键、唯一索引、聚簇索引、非聚簇索引、唯一聚簇索引 的区别与联系

    B树与红黑树最广泛的应用就是数据库索引,熟练使用索引是程序员最重要的基本功之一.索引的数据结构可以是树,也可以是哈希表.常用的数据库都是树结构的索引,本篇的背景也全部以树结构的索引为前提.本文旨在梳理 ...

  10. oracle 复合索引原则,复合索引在什么情况下使用

    http://topic.csdn.net/t/20060813/16/4946416.html 1.复合索引使用的目的是什么? :能形成索引覆盖,提高where语句的查询效率 2.一个复合索引是否可 ...

最新文章

  1. tomcat历史版本新特性_tomcat升级后报错RFC 7230 and RFC 3986
  2. 多通道图像的通道分享和合成函数-split、merge
  3. OVS对VXLAN解封包(二)
  4. linux下创建proc文件系统,[转载]Linux下的proc文件系统(转载)
  5. Go中线程和协程的区别
  6. JAVA lock 原理讲解
  7. oracle 还原归档,ORACLE RMAN 还原归档日志
  8. 快速计算Distinct Count
  9. 搭建LINUX BIND实现DNS解析
  10. SQL连接查询_ INNER JOIN
  11. Sessions and Processes
  12. 机器学习 之 LBP特征
  13. 全自动与半自动手表的区别_半自动和全自动的区别在哪里?
  14. oracle10g 杨忠民,开题报告 基于J2EE的DRP系统设计
  15. *ST东方A:山重水复疑无路 强烈推荐评级
  16. win10开启移动热点,手机无法获取ip地址
  17. LeetCode精选TOP面试题(中等篇)【出现率降序】
  18. テクニカルアーティストの基本的な役割と、もう1つ重要な役割
  19. nav+dl+ul+媒体化查询
  20. linux/php一句话图片马及实例

热门文章

  1. 关于NG-ZORRO的历史
  2. Java8高效遍历map_JAVA8独有的map遍历方式(非常好用)
  3. Windows 10 关键错误,“开始”菜单和 Cortana 无法工作。你下次登录时,我们将尝试解决此问题的解决方法
  4. 药物分子虚拟筛选规则
  5. 孔融让梨c语言程序,读完孔融让梨后的心得
  6. js 中split分割字符串组成数组
  7. dw html设置字体颜色,字体颜色怎么设置-dreamweaver编辑字体大小、颜色样式方法...
  8. 计算机怎么取消u盘启动程序,u盘装系统怎么设置第一启动项
  9. 0010__bat的pushd和popd
  10. 人生需要遗憾才完美的作文