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 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

如何选择SDR无线图传方案

在开源软件定义无线电(SDR)领域,有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案: 1. **OpenHD**:这是一个远程高清数字图像传输的开源解决方案,它使用SDR技术来实现高清视频的无线传输。OpenHD项目提供了一个完整的工具链,包括发射器和接收器的硬件设计以及相应的软件。 2. **USRP(Universal Software Radio Periphera

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

为什么现在很多人愿意选择做债务重组?债重组真的就这么好吗?

债务重组,起初作为面向优质企业客户的定制化大额融资策略,以其高效周期著称,一个月便显成效。然而,随着时代的车轮滚滚向前,它已悄然转变为负债累累、深陷网贷泥潭者的救赎之道。在此路径下,个人可先借助专业机构暂代月供,经一段时间养护征信之后,转向银行获取低成本贷款,用以替换高昂网贷,实现利息减负与成本优化的双重目标。 尽管债务重组的代价不菲,远超传统贷款成本,但其吸引力依旧强劲,背后逻辑深刻。其一

贝壳面试:什么是回表?什么是索引下推?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 1.谈谈你对MySQL 索引下推 的认识? 2.在MySQL中,索引下推 是如何实现的?请简述其工作原理。 3、说说什么是 回表,什么是 索引下推 ? 最近有小伙伴在面试 贝壳、soul,又遇到了相关的