当前位置: 首页 > news >正文

DataFrame中.iloc 属性

.iloc 是 Pandas 库中 DataFrame 和 Series 对象的一个属性,用于基于整数位置的索引来选择数据。与基于标签的 .loc 索引不同,.iloc 使用从 0 开始的整数位置来访问行和列。这对于处理需要按位置而不是按标签选择数据的场景非常有用。

目录

基本用法

代码示例

常见错误


基本用法

  1. 选择单行或单列
    • 使用单个整数来选择单行或单列。
    • 例如,df.iloc[0] 选择第一行,df.iloc[:, 0] 选择第一列。
  2. 选择多行或多列
    • 使用整数列表或切片来选择多行或多列。
    • 例如,df.iloc[0:3] 选择前三行,df.iloc[:, 0:2] 选择前两列。
  3. 选择特定位置的元素
    • 使用两个整数来选择特定位置的单个元素。
    • 例如,df.iloc[0, 0] 选择第一行第一列的元素。
  4. 布尔索引结合使用
    • 可以与布尔数组结合使用来选择特定条件的行。
    • 例如,df.iloc[df['column_name'] > value] 选择满足条件的行(虽然这更常用 .loc 来实现)。

代码示例

设一个 DataFrame df :

import pandas as pd  data = {  'A': [1, 2, 3, 4],  'B': [5, 6, 7, 8],  'C': [9, 10, 11, 12]  
}  
df = pd.DataFrame(data)

 选择第一行

print(df.iloc[0])

 输出

A    1  
B    5  
C    9  
Name: 0, dtype: int64

选择前两列

print(df.iloc[:, 0:2])

输出

A  B  
0  1  5  
1  2  6  
2  3  7  
3  4  8

选择第一行第二列的元素

print(df.iloc[0, 1])

输出

5

选择第二和第四行

print(df.iloc[[1, 3]])

输出

A  B   C  
1  2  6  10  
3  4  8  12

常见错误

df = pd.read_excel('0_data.xlsx', engine='openpyxl')
z1 = df[['z1_x', 'z1_y']]
print( z1[1])

使用 pandas 的 read_excel 函数从 Excel 文件 '0_data.xlsx' 中读取数据,并将其存储在 DataFrame df 中。接着从 df 中选择了不同的列来创建新的 DataFrame 或 Series 对象:z1 包含 'z1_x' 和 'z1_y' 列。

然而,在打印 z1[1] 时,z1[1] 实际上并不会打印出 z1 DataFrame 中的第二行(在 pandas 中,索引通常是从 0 开始的)。相反,z1[1] 会尝试基于列标签来选择数据,因为传递了一个整数给 DataFrame 的 __getitem__ 方法,而该方法首先会尝试将其解释为列标签(如果它看起来像是一个有效的列名或可以被解释为列名的某种形式)。

但是,因为 1 不是一个有效的列名,所以这里的行为实际上取决于 pandas 的版本和内部实现——在某些情况下,它可能会抛出一个错误,而在其他情况下,它可能会尝试将整数解释为位置索引(尽管这通常不是推荐的做法,因为它可能会导致混淆)。

要正确地按位置索引选择 DataFrame 中的行,应该使用 .iloc 属性,如下所示:

print(z1.iloc[1])

这将打印出 z1 DataFrame 中的第二行(索引为 1 的行)。

如果 Excel 文件中的列名确实包含空格或特殊字符(比如 la1 和 la2),并且在代码中也是按原样引用的这些列名,需要确保 Excel 文件中的列名与在代码中使用的完全匹配(包括大小写)。

http://www.lryc.cn/news/627165.html

相关文章:

  • 动态规划----8.乘积最大子数组
  • Docker操作速查表
  • 海量数据测试指南与实战
  • Advanced Math Math Analysis |01 Limits, Continuous
  • C++/Qt开发:TCP通信连接软件测试方法:ECHO指令
  • PyTorch API 5
  • CorrectNav——基于VLM构建带“自我纠正飞轮”的VLN:通过「视觉输入和语言指令」预测导航动作,且从动作和感知层面生成自我修正数据
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行本地操作(5)
  • 当 AI 开始 “理解” 情绪:情感计算如何重塑人机交互的边界
  • 基于单片机环境火灾安全检测
  • NVIDIA Isaac Sim
  • 48 C++ STL模板库17-容器9-关联容器-映射(map)多重映射(multimap)
  • VR交通安全学习机-VR交通普法体验馆方案
  • 2026 济南淀粉深加工展览会亮点:玉米科技与未来产业发展
  • IPSEC安全基础
  • C++智能指针详解:告别内存泄漏,拥抱安全高效
  • 【科研绘图系列】R语言绘制平滑曲线折线图
  • AI重塑软件测试:质量保障的下一站
  • MySQL分库分表与MyCAT
  • PiscCode集成Hand Landmarker:实现高精度手部姿态检测与分析
  • C语言:第18天笔记
  • Google Chrome扩展不受信任 - 不受支持的清单版本 解决方案 -- Chrome扩展插件无法加载 扩展程序无法使用 解决方案
  • PiscCode使用MediaPipe Face Landmarker实现实时人脸特征点检测
  • vue3 el-select 默认选中第一个
  • 基础笔记8.20
  • 8.20网络编程——sqlite3数据库
  • lua入门以及在Redis中的应用
  • 技术干货|使用Prometheus+Grafana监控redis实例详解
  • 自学嵌入式第二十三天:数据结构(3)-双链表
  • Java 性能优化实战(二):JVM 调优的 5 个核心维度