[Python] keyError looping through dataFrame

Discussão em 'Python' iniciado por Stack, Janeiro 15, 2025.

  1. Stack

    Stack Membro Participativo

    I have a simple bit of code that loops through two list of key words and then checks if those key words ae found in a field in another list. I have one check working just find the second check is tossing keyError when I set up the iterator. Bet 'ya it is a simple error but I do not see it. Using Python 3.7 working in Spyder

    Code looks like this:

    for obsRow in obsSheet.iter_rows(min_row=2, max_col=21):
    audit = obsRow[0].value ##1 = Audit
    recommdNo = obsRow[1].value ##2 = Recommendation #
    observ = obsRow[3].value ##4 = Observation
    recommd = obsRow[4].value ##5 = Recommendation
    priority = obsRow[7].value ##8 = Priority
    auditNo = obsRow[19].value ##20 = Audit Number
    found_keywd1 = ""
    found_keywd2 = ""
    ##
    ## Is Key Word 1 in recommd
    for kw in df_keyWord['kw1'].values:
    found_keywd1 = found_keywd1.join( kw + "|") if kw in recommd else found_keywd1
    ##
    ## Is Key Word 2 in recommd
    for kw2 in df_keyWord['kw2'].values:
    found_keywd2 = found_keywd2.join( kw2 + "|") if kw2 in recommd else found_keywd2

    if found_keywd1 or found_keywd2:
    new_df_row = {'audit' : audit , 'recommdNo': recommdNo , 'observ': observ , 'recommd': recommd ,
    'priority': priority , 'auditNo': auditNo , 'found_keywd1' : found_keywd1 , 'found_keywd2' : found_keywd2 }
    df_KWfound.loc[len(df_KWfound),:] = new_df_row

    df_KWfound.to_csv(KEYWORDFOUNDFILE)


    Error

    Tossed


    ipdb> > c:\users\nexxxx\onedrive - \dev\recommendcommittetaskforce\findkeywords.py(48)<module>()
    46 ##
    47 ## Is Key Word 2 in recommd
    ---> 48 for kw2 in df_keyWord['kw2'].values:
    49 found_keywd2 = found_keywd2.join( kw2 + "|") if kw2 in recommd else found_keywd2
    50


    ipdb> KeyError: 'kw2'
    > c:\users\nexxxx\onedrive - \dev\recommendcommittetaskforce\findkeywords.py(48)<module>()
    46 ##
    47 ## Is Key Word 2 in recommd
    ---> 48 for kw2 in df_keyWord['kw2'].values:
    49 found_keywd2 = found_keywd2.join( kw2 + "|") if kw2 in recommd else found_keywd2
    50


    ipdb>
    ipdb> print(df_keyWord)
    kw1 kw2
    0 create committe
    1 meet task force
    2 form study group

    ipdb>


    Many Thanks for your kind assistance

    KD

    Continue reading...

Compartilhe esta Página