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

如何用Python Pandas通过用户输入从Excel指定行提取信息

问题解决:通过CPF从Excel中检索对应行数据

原代码存在两个核心问题:

  • CPF in dados是判断输入值是否属于DataFrame的列名,而非检查数据行中是否存在该CPF,逻辑完全错误。
  • iloc仅支持整数位置索引,无法直接用CPF字符串定位目标行。

修正方案1:布尔索引(通用场景)

直接通过匹配CPF列的值筛选目标行,无需修改索引:

import pandas as pd

# 读取Excel,建议指定CPF列为字符串类型,避免数字格式丢失前导零
dados = pd.read_excel(r"Dados.xlsx", dtype={'CPF': str})
CPF_input = input('Digite o CPF: ')

# 筛选匹配CPF的行,只保留需要的列
resultado = dados[dados['CPF'] == CPF_input][['CPF', 'Agencia', 'Conta']]

if not resultado.empty:
    print(resultado)
else:
    print('Não encontrado')

修正方案2:设置CPF为索引(适合CPF唯一的场景)

如果Excel中每个CPF唯一,可以将其设为DataFrame索引,用loc快速检索:

import pandas as pd

# 读取Excel并将CPF设为索引,同时指定类型为字符串
dados = pd.read_excel(r"Dados.xlsx", dtype={'CPF': str}).set_index('CPF')
CPF_input = input('Digite o CPF: ')

try:
    # 通过索引直接定位,提取需要的列
    agencia_conta = dados.loc[CPF_input][['Agencia', 'Conta']]
    print(f"CPF: {CPF_input}")
    print(agencia_conta)
except KeyError:
    print('Não encontrado')

注意事项

  • 确保Excel中的CPF列格式与输入值一致:如果CPF包含前导零,必须将列类型设为字符串,否则读取时会自动丢失前导零,导致匹配失败。
  • 如果存在多个相同CPF的行,方案1会返回所有匹配行,方案2只会返回最后一行(因为索引唯一),根据实际场景选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:10:28