Aloha Friends,
У меня есть df с различными «именами курсов» в столбце, мне нужно пройти через это, вернуть любые совпадения строк и вернуть значение
с этой целью я создал dict для каждого частичного варианта строки, чтобы я мог сопоставить его со значением
col A
Phsyics, Maths
Algebra & Maths
History
Geology
Biology
mapping = {'Algebra & Maths' : 'Mathematics',
'Phsyics' : 'Science',
'History' : 'History',
'Geology' : 'Geology',
'Biology' : 'Science'}
# this goes on for about another 35 lines.
Следующая проблема в два этапа
Мне нужно сопоставить совпадения ключей со значениями в новом столбце
после того, как значения были назначены новому столбцу, мне нужно перебрать новый столбец и найти совпадения с моим запросом
например, если пользователь выбрал «Наука», мне нужно сопоставить его с новым столбцом, чтобы сказать «ДА», у пользователя может быть несколько предметов, но я уверен, что смогу решить эту сложную часть, часть 1!
До сих пор я получил свои ограниченные знания в области кодирования (я думал, что смогу справиться с этим сейчас ... но эй, хо)
мой код до сих пор:
import os
import pandas as pd
import numpy as np
os.chdir('')
df = pd.read_excel('Bookings.xlsx')
mapping = {'Algebra & Maths' : Mathematics,
'Phsyics' : 'Science'}
df['keys'] = [k for k, v in Mapping.items() if df['course_name'] in k]
когда я запускаю этот код, я получаю: TypeError: для 'in' в качестве левого операнда требуется строка, а не Series
Я прошел около 30 SO-тем и не смог разобраться, поэтому мои искренние извинения!
DN.
Редактировать для Ракеша:
course_name,
this course English is good
science and biology course attend
English Literature with Shakespeare
Maths in the Golden Age
Итак, у моего DF есть список таких данных, поэтому в моей голове я хотел выполнить частичное совпадение ключей в моем dict и вернуть значения в новом столбце.
поэтому моя проблема заключается в частичном сопоставлении ключей в моем слове. Имеет ли это смысл?