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

如何通过列名在Pandas DataFrame中选择连续列?

按列名范围选取DataFrame列的简便方法

当然有啦!针对你想要的通过列名从"b"到"d"选取列的需求,Pandas有几种很方便的实现方式,下面给你一一说明:

  • 最直接的方法:使用loc进行列名切片
    如果你的列在DataFrame里是按顺序排列的(就像例子里的a,b,c,d,e这样),直接用loc的切片语法就能实现,和iloc的逻辑类似,而且是包含起始和结束列的:

    df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6], "c": [7, 8, 9], "d": [10, 11, 12], "e": [13, 14, 15]})
    df.loc[:, "b":"d"]
    

    执行后就会得到从b到d的所有列,完全符合你的需求,这也是最简便的写法。

  • 如果列顺序不连续:先获取列索引再用iloc
    要是你的列名在DataFrame里不是连续排列的,或者你需要更灵活的控制,可以先通过columns.get_loc()拿到列的位置索引,再用iloc选取:

    start_idx = df.columns.get_loc("b")
    end_idx = df.columns.get_loc("d")
    df.iloc[:, start_idx:end_idx+1]  # iloc是左闭右开,所以要+1包含end列
    
  • 自定义方法:实现你想要的df.SOME_FUNCTION("b","d")形式
    如果你特别喜欢这种函数调用的形式,可以给pd.DataFrame封装一个自定义方法,这样就能直接像你设想的那样使用了:

    import pandas as pd
    
    # 定义自定义方法
    def select_cols_between(self, start_col, end_col):
        start_idx = self.columns.get_loc(start_col)
        end_idx = self.columns.get_loc(end_col)
        return self.iloc[:, start_idx:end_idx+1]
    
    # 把方法绑定到DataFrame类上
    pd.DataFrame.select_cols_between = select_cols_between
    
    # 现在就可以直接调用了
    df.select_cols_between("b", "d")
    

总结一下,第一种方法是最推荐的,只要列是按顺序排列的,一行代码就能搞定,完全满足你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:16:11