You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas如何正确读取DataFrame指定列的指定行数据

pandas读取指定列指定行范围数据实现方案

问题背景

现有示例DataFrame结构如下:

A      B       C      D
0   ravi   priya    sonue   John
1   priya  sonue   ravi     john
2   john  ravi     priya    sonue
3   sonue john    priya    ravi

需求为获取B列中索引0到2的行数据,此前使用df.iloc[0, 2]无法得到预期结果,期望输出格式如下(注:示例中sone为笔误,对应原数据值为sonue):

B 
priya
sonue
ravi

错误原因说明

iloc的参数规则为df.iloc[行选择范围, 列选择范围],此前写的df.iloc[0,2]实际是取「行索引为0、列位置索引为2(即C列)」的单个单元格值,和需求的行列范围完全不匹配。

可行实现代码

方法1:先选列再切片行(可读性最高)

如果需要保留B列的列名、返回DataFrame格式和预期输出对齐,使用双括号选中B列,再对行做0-3的切片(pandas位置切片为左闭右开规则,写0:3即可覆盖索引0、1、2三行):

# 选中B列,截取索引0-2共3行
result = df[['B']].iloc[0:3]

方法2:iloc同时指定行列范围

直接在iloc中同时写行、列的选择范围,注意原表B列的位置索引是1(列顺序从0开始计数:A=0、B=1、C=2、D=3),列范围写1:2即可保留DataFrame结构:

result = df.iloc[0:3, 1:2]

如果不需要保留带列名的DataFrame结构,只需要拿到B列对应3个值的Series序列,可以简化写法为:

result = df['B'].iloc[0:3]

运行上述代码后,得到的输出和预期完全一致:

B
0  priya
1  sonue
2   ravi

内容的提问来源于stack exchange,提问作者vipin sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:42:17