Итак, я передаю фрейм данных, по одной строке за раз, в функцию для поиска первого вхождения слова и возврата его индекса в новый столбец фрейма данных.
def fix_df(row):
words= row['t_sents']
tags= row['t_tags']
return find_start(words, tags) #get a row slice from two columns,
def find_start(words, tags):
try:
idx = tags.index('ante')
except ValueError:
idx = None
return idx
bant_df['start_ante'] = bant_df.apply(fix_df, axis=1) #calling the ff
Мой вывод, однако, является неожиданным. например, глядя на снимок кадра данных
t_sents t_tags start_ante
0 'Sandwich', 'in', 'Kent', ';', 'until', '2011... '0', '0', '0', '0', 'ante', 'ante', '0', '0',... 22.0
1 'If', 'the', 'deals', 'were', 'properly', 'ac... 'ante', 'ante', 'ante', 'ante', 'ante', 'ante... 2.0
2 'These', 'distortions', 'have', 'seen', 'one'... '0', '0', '0', '0', '0', '0', '0', '0', '0', ... 152.0
мой ожидаемый ответ в первом кадре должен быть 4, но у меня есть 22. Второй ряд должен быть 0, но у меня есть 2. что может быть не так ? Обратите внимание, что я только запросил слово во втором столбце t_tags.