pandas 6 - 索引切片选择( tcy)

2024-03-20 09:48
文章标签 切片 选择 索引 pandas tcy

本文主要是介绍pandas 6 - 索引切片选择( tcy),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

索引切片选择      2018/12/3  2018/12/14  

1.Series选择:

操作句法实例结果说明
 - - - -s=pd.Series([0,1,2,3,4],index=list('abcde'))
标签s/s.locs[单个标签]s['c'] , s.loc['c']2如未包含标签则引发异常
标签s/s.locs[标签切片]s['c':'e']=62,3,4标签切片包含末端‘e’;
标签s/s.locs[标签列表]s[['c','d','e']]2,3,4标签不存在抛异常。错误用法s[('c','d','e')]
切片s/s.ilocs[n-1]s[2],s.iloc[2]2 -
切片s/s.ilocs[切片]s[2:]2,3,4选择第3,4,5行数据
切片s/s.iloc -s[:3] , s[-3:] -选择前,后3个数据
bool-s/s.ilocs[布尔向量]s[s>1] , s.loc[s>1]2,3,4选择s>1的数据2,3,4个数据(第3,4,5行)
属性访问s.as.c2 -
get-函数s.get(label)s.get('c')2缺少标签返回None或指定默认值

 

2.数据帧DataFrame选择:-汇总表

 

No

函数df[]df.loc[]df.iloc[]df.at[]df.iat[]
1用途选择行或列选择行列选择行列标量标量
2索引数值行索引int或str;索引是行名,列名索引是数值索引是行名,列名索引是数值
  列索引是行,列名 - - - -
3选择标量 -df.loc['b','C'] df.iloc[1,2]df.at['b','C']df.iat[1,2]
 选择标量 - - -df.loc['b'].iat[2]df.iloc[1].at['C']
4选择行df[0:1]或df['a':'a'] df.loc['b']df.iloc[1] - -
 选择行df[0:3]或df['a':'c']  df.loc[['b','c']]df.iloc[[1,3]] - -
 选择行 df.loc['a':'c']df.iloc[1:4] - -
5选择列df['A']或df.A df.loc[:,'B']df.iloc[:,1] - -
 选择列df[['A','C']]   df.loc[:,['B','C']]df.iloc[:,[1,2]] - -
 选择列 -df.loc[:,'A':'C']df.iloc[:,0:3] - -
6选择行列 -df.loc['a':'c','A':'C']df.iloc[0:3,0:3] - -
 选择行列 -df.loc['a':'c',['A','C']]df.iloc[0:3,[0,2]] - -
 选择行列 -df.loc[['a','c'],'A':'C']df.iloc[[0,2],0:3] - -
 选择行列 -df.loc['a','A':'C']df.iloc[0,0:3] - -
7布尔索引df[b1],df[df.A>0]   行df.loc[b1,b2]df.iloc[b1,b2] - -
  df[df['B'].isin([6,7])]行b1=np.array([0,1,0,1,0],dtype=bool)b2=np.array([1,0,1,0],dtype=bool)
 注意:     
 df=pd.DataFrame(np.arange(20).reshape((5,4),order='F'),index=list('abcde'),columns=list('ABCD'))
 返回值:数值,系列,数据帧;当标签列表返回系列时,若想返回数据帧外加一层中括号。
 df[0]或df['a']错误用法;当有分号不能外加中括号;都可以查看设置数据。

 

 2.2.实例:

 

df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [10, 20, 30]],
index=[4, 5, 6], columns=['A', 'B', 'C'])
# 实例1:
df.loc[5].at['B'] # 获取标量值: 4
df.loc[5].iat[1]  # 获取标量值:4
df.iloc[1,1]      # 4
df.iat[1,1]=4     # 4# 实例2:
df.loc[dates[0]] # 按标签选择:获取第一行
df.iloc[2]       # 通过传递的整数的位置df.loc[:,['A','B']]          # 按标签选择:获取第A,B列
df.loc['20181015',['A','B']] # 按标签选择-减少返回对象的尺寸df.iloc[3:5,0:2]       # 通过整数切片
df.iloc[[1,2,4],[0,2]] # 通过整数位置位置列表# 实例3:使用isin()过滤方法
df2 = df.copy()
df2['D'] = ['one','two','three']
df2[df2['D'].isin(['two','three'])]
'''A  B  C  D
5  0  4  1  two
6 10 20 30  three'''# 实例4:布尔索引-使用单个列的值来选择数据。
df[df.B >=4 ]
#   A   B  C
# 5 0   4  1
# 6 10 20 30df.loc[[False, False, True]]#选取第3行
df.loc[df['B'] >4, ['C']]   #一个值返回为数据帧# 实例5:select_dtypes() 选择显示特定数据类型
# 要选择所有数字和布尔列,同时排除无符号整数:
df.select_dtypes(include=['number', 'bool'], exclude=['unsignedinteger'])# 实例6:按可调用选择
# .loc,.iloc以及[]索引也可以接受一个callable索引器。df.loc[lambda df: df.A > 0, :]    #获取第三行数据
df.loc[:, lambda df: ['A', 'B']]  #获取A,B列数据
df.iloc[:, lambda df: [0, 1]] #获取A,B列数据
df[lambda df: df.columns[0]]  #获取A列数据df.A.loc[lambda s: s > 0] #获取序列=10# 实例7:IX 已弃用
df.loc[df.index[[0, 2]], 'A']           # 获取第1,2行第A列数据
df.iloc[[0, 2],df.columns.get_loc('A')] # 获取第1,2行第A列数据
df.iloc[[0, 2],df.columns.get_indexer(['A','B'])] # 获取第1,2行第A,B列数据# 实例8:设置数据
df[['B', 'A']] = df[['A', 'B']]       #就地修改
df.loc[:,['B', 'A']] = df[['A', 'B']] #不会修改
# 交换列值的正确方法是使用原始值:
df.loc[:,['B', 'A']] = df[['A', 'B']].values

 

 

这篇关于pandas 6 - 索引切片选择( tcy)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829076

相关文章

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

浅谈mysql的not exists走不走索引

《浅谈mysql的notexists走不走索引》在MySQL中,​NOTEXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引,下面就来介绍一下mysql的notexists走不走索... 在mysql中,​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下