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

如何使用Pandas的loc从指定列开始切片行?及Excel行读取范围调整

嘿,我来帮你搞定这两个问题,一步步说清楚:

技术问题:如何用Pandas的loc实现从指定列开始对行切片?

Pandas的loc是基于标签的索引工具,要实现从指定列开始切片行,只需要在loc中同时指定目标行和列的范围即可,核心语法很简单:

df.loc[行标签/行标签列表/行切片, 起始列标签:]

给你几个实用场景的例子:

  • 选索引为3和11的两行,从D列(标签为'D')开始的所有列:
    df.loc[[3, 11], 'D':]
    
  • 选从第0行到第10行的所有行,从名为"销售额"的列开始:
    df.loc[0:10, '销售额':]
    
  • 如果你的列是数值索引(比如读取Excel时没指定表头,列用0、1、2...表示),D列对应索引3(A=0,B=1,C=2,D=3),写法就是:
    df.loc[[3, 11], 3:]
    

关键要记住:loc里的列范围起始列:会自动包含从起始列到DataFrame最后一列的所有内容,灵活度拉满。

代码优化需求:读取指定行从D列开始的Excel数据

针对你的需求,直接给你优化后的代码,同时解释每个步骤的作用:

import pandas as pd

# 用原始字符串定义文件路径,避免Windows路径的转义坑
file_path = r"G:\Data\Hotels\ABZPD - Daily Strategy Tool.xlsm"

# 读取「CRM View」工作表,header参数根据你的实际表头位置调整:
# 你提到第5行对应Pandas索引3,说明前面有3行是表头/说明行,所以设置header=3(让第4行成为表头,第5行开始是数据行,索引从0开始)
df = pd.read_excel(file_path, sheet_name="CRM View", header=3)

# 用loc筛选目标行和列:索引3、11的行,从D列开始到最后一列
# 这里假设D列的表头标签是'D',如果不是,你可以先打印df.columns查看实际列名,替换掉'D'就行
filtered_data = df.loc[[3, 11], 'D':]

# 如果你的列是数值索引(没有表头),就换成下面这行:
# filtered_data = df.loc[[3, 11], 3:]

额外小技巧:

如果你的Excel文件特别大,不想加载整个表,可以结合usecols参数只读取D列及以后的列,再筛选行,能提升不少效率:

# 读取时只加载D列及以后的列
df = pd.read_excel(file_path, sheet_name="CRM View", header=3, usecols="D:")
# 再筛选目标行
filtered_data = df.loc[[3, 11]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:45:07