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之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基