Я пытаюсь добавить новый столбец к существующему фрейму данных на основе списка, который короче уже существующих столбцов.
Значения списка основаны на словаре, где значение возвращается каждый раз, когда оно сопоставляется с ключом.
Я использую следующий метод для получения значений:
attending_dict ={ 'Jack' :'Yes',
'John':'No',
'Paul':'Maybe'}
List_Attended =[]
for i, row in df.iterrows():
text = row['Invitations']
make_list = text.split()
for keys, values in attending_dict.items():
if keys in make_list:
List_Attended.append(values)
List_Attended = [Yes,No,Maybe]
До сих пор я пытался использовать .loc для заполнения пропущенных значений, но выдает это сообщение об ошибке:
new_attending = pd.Series(List_Attended)
df.loc['Attending'] = new_attending.values
raise ValueError("cannot set a row with "
ValueError: cannot set a row with mismatched columns
Вот что я хотел бы иметь в моем фрейме данных:
Invitations Attending
Jack Muller Yes
John Doe No
Ryan Paul NaN
Paul Doe Maybe
Было бы замечательно, если бы кто-то мог объяснить, как решить эту проблему.