【问题标题】:Python index value from list, return index value and list value列表中的Python索引值,返回索引值和列表值
【发布时间】:2021-12-17 11:13:40
【问题描述】:

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

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)

【问题讨论】:

    标签: python loops indexing spyder


    【解决方案1】:

    如果我正确理解您的问题,您有自己的预定义代码,并且您正在尝试查看 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
    

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多