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

如何获取Pandas中同名列(A列)的位置,适配多DataFrame场景

获取DataFrame中重复列名的位置(以A列为例)

你需要在列名重复的DataFrame里,准确获取所有名为'A'的列的位置(包括第二个及以后的),同时适配不同列数、列位置不固定的多个DataFrame。

先还原你的示例DataFrame:

ABAC
text1text3text5text7
text2text4text6text8

为什么你原来的代码行不通

你之前的循环里,a.columns.get_loc('A')在列名重复时,只会返回第一个匹配的索引,所以不管循环多少次碰到'A',赋值的都是同一个位置,没法区分第二个'A'。

解决方案

直接遍历列的索引和名称,收集所有名为'A'的列的位置,这样不管有多少个重复的'A'列,都能一次性拿到所有位置,适配任意结构的DataFrame。

方法1:列表推导式快速收集

# 一次性获取所有名为'A'的列的索引位置
a_col_indices = [idx for idx, col_name in enumerate(a.columns) if col_name == 'A']

# 取第一个A列的位置
indx1 = a_col_indices[0]
# 取第二个A列的位置(先判断是否存在,避免索引越界)
indx2 = a_col_indices[1] if len(a_col_indices) >= 2 else None

方法2:循环逐个记录(更直观)

a_col_indices = []
for idx, col_name in enumerate(a.columns):
    if col_name == 'A':
        a_col_indices.append(idx)

# 根据需要获取对应位置
if len(a_col_indices) >= 1:
    indx1 = a_col_indices[0]
if len(a_col_indices) >= 2:
    indx2 = a_col_indices[1]

这样处理后,不管你的DataFrame有多少列、'A'列在什么位置,都能准确拿到所有目标列的索引,还能避免索引越界的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:05:45