Python 列表中的索引值,return 索引值和列表值

Python index value from list, return index value and list value

我正在尝试使用特定代码列表来索引任何时候使用这些代码之一,然后 return 该代码的值和与之关联的参数名称。

import numpy as np
import pandas as pd

param_list = pd.read_csv(r'C:/Users/Gordo/Documents/GraduateSchool/Research/GroundWaterML/parameter_cd_query.csv')

#def p_list():
#    return [param_list['p_cd'], param_list['param_nm']]

for item, value in param_list['p_cd'], param_list['parm_nm']:

    if item in ['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']:
       print (item, value)

如果我对你的问题的理解正确,那么你有自己的预定义代码,并且你正在尝试查看 csv 文件中的项目是否与你的任何代码匹配。如果是这种情况,您只需过滤数据框即可获得所有匹配项(因为无论如何您都在使用 pandas)。

import pandas as pd

param_df = pd.read_csv(r'C:/Users/Gordo/Documents/GraduateSchool/Research/GroundWaterML/parameter_cd_query.csv')
my_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']

result = param_df[param_df.p_cd.isin(my_codes)]

result 为您提供所有匹配项。如果你只想要一个包含第一个匹配项的数组,你可以这样做:

result.loc[0].values