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

如何用Pandas根据列名和列值查找对应行号?

解决方案

1. 排查列名格式问题

你的Excel表头里的“50”可能带有前导/尾随空格,导致读取后列名不是纯'50'。先打印所有列名确认:

print(df.columns.tolist())

如果列名确实含空格,要么用实际列名索引,要么提前清理列名:

# 去除所有列名的前后空格
df.columns = df.columns.str.strip()
# 再执行查找逻辑
target_rows = df[df['50'] == 286].index
# 转换为Excel的行号(pandas索引默认从0开始,需加1)
excel_row = target_rows[0] + 1 if len(target_rows) > 0 else None

2. 修正数据类型不匹配问题

你代码里用字符串'286'和列值比较,但Excel中的数值通常是数字类型(int/float),类型不匹配会导致无结果,同时可能掩盖列名错误。先确认列的数据类型:

print(df['50'].dtype)

用对应类型的值进行比较:

# 数字类型直接用286而非'286'
target_rows = df[df['50'] == 286].index

3. 确保读取Excel时正确识别表头

如果读取时未指定表头行,可能把第一行数据当成列名,导致索引错误。读取时明确设置表头:

import pandas as pd
# header=0表示用第一行作为表头
df = pd.read_excel('你的文件路径.xlsx', header=0)
# 先清理列名再操作
df.columns = df.columns.str.strip()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:34:59