KeyError при прохождении через dataFramePython

Программы на Python
Ответить
Anonymous
 KeyError при прохождении через dataFrame

Сообщение Anonymous »

У меня есть простой фрагмент кода, который проходит через два списка ключевых слов, а затем проверяет, найдены ли эти ключевые слова в поле в другом списке. У меня работает одна проверка, просто обнаружил, что вторая проверка выдает keyError, когда я настраиваю итератор. Держу пари, это простая ошибка, но я ее не вижу.
Использование Python 3.7 в Spyder
Код выглядит следующим образом:

Код: Выделить всё

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)
Ошибка

Код: Выделить всё

 Tossed

ipdb> > c:\users\nexxxx\onedrive - \dev\recommendcommittetaskforce\findkeywords.py(48)()
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)()
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>
Большое спасибо за вашу помощь
KD

Подробнее здесь: https://stackoverflow.com/questions/793 ... -dataframe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»