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

Python如何从pandas读取的csv列表匹配指定代码并返回对应参数

原代码存在的问题

  • 循环遍历逻辑错误:for item, value in param_list['p_cd'], param_list['parm_nm'] 会把两个Series对象整体作为可迭代对象的两个元素,无法逐行配对获取代码和对应参数名,运行会直接报错
  • 用Python原生循环遍历DataFrame效率极低,数据量较大时性能很差
  • 目标代码列表硬编码在判断条件里,可读性和可维护性都不好

优化后代码(推荐)

import pandas as pd

# 读取参数映射表
param_list = pd.read_csv(r'C:/Users/Gordo/Documents/GraduateSchool/Research/GroundWaterML/parameter_cd_query.csv')

# 单独维护待匹配的目标代码列表,修改更方便
target_codes = ['p00010','p00020','p00025','p00058','p00059','p00090','p00095','p00191','p00300','p00301','p00400','p00405','p00410',
                'p00450','p00452','p00453','p00602','p00607','p00608','p00613','p00618','p00631','p00660','p00666','p00671',
                'p00681','p00900','p00904','p00905','p00915','p00925','p00930','p00931','p00932','p00935','p00940',
                'p00945','p00950','p00955','p01000','p01005','p01010','p01020','p01025','p01030','p01035','p01040','p01046',
                'p01049','p01060','p01065','p01080','p01085','p01090','p01106','p01130','p01145','p01155','p04035','p07000',
                'p09511','p22703','p29801','p39086','p49933','p50624','p61028','p62636','p62639','p62642','p62645',
                'p63041','p63162','p63790','p70300','p70301','p70303','p71846','p71851','p71856','p71865','p71870','p72015',
                'p72016','p72019','p82081','p82082','p82085','p90095','p99832','p99833','p99834']

# 用pandas内置isin方法直接筛选命中的行,向量化操作效率远高于原生循环
match_result = param_list[param_list['p_cd'].isin(target_codes)][['p_cd', 'parm_nm']]

# 打印结果,去掉索引更整洁
print(match_result.to_string(index=False))

# 如果需要导出结果到文件可使用以下代码
# match_result.to_csv('匹配结果.csv', index=False)

循环写法修正(不推荐,仅作错误参考)

如果一定要用循环实现,需要用zip方法把两个列打包成逐行配对的元组:

# 先把目标代码转成集合,in查询速度更快
target_code_set = set(target_codes)
for item, value in zip(param_list['p_cd'], param_list['parm_nm']):
    if item in target_code_set:
        print(item, value)

注意事项

  • 请检查csv文件中参数名称的列名是否和代码里的parm_nm完全一致,避免拼写错误导致取值失败
  • 目标代码转成集合后,in操作的时间复杂度会从O(n)降到O(1),数据量越大性能提升越明显

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:39:00