Это из упражнения в DataQuest. Набор данных можно найти здесь: https://www.reddit.com/r/datasets/comments/1uyd0t/200000_jeopardy_questions_in_a_json_file
У меня есть функция, которая в основном выясняет, сколько раз слово в ответе встречается в вопросе под угрозой.
def AnsFromQ(row):
split_answer = row['clean_answer'].split(" ")
split_question = row['clean_question'].split(" ")
match_count = 0
if 'the' in split_answer:
split_answer.remove("the")
if len(split_answer) == 0:
return 0
for word in split_answer:
if word in split_question:
match_count += 1
return match_count / len(split_answer)
jeopardy['answer_in_question'] = jeopardy.apply(AnsFromQ, axis=1)
Мой вопрос относится к строкам 2 и 3 с использованием row['clean_answer']
. Как Python знает, что я хочу сослаться на ячейку (пересечение строки и столбца), не используя что-то вроде jeopardy.loc[row,['clean_answer']]
? Я мог бы использовать любую переменную для row
.
Этот код работает. Я просто не знаю почему. Если я использую код с loc
, в jupyter выдается предупреждение о том, что мне нужно использовать reindex()
.