Я новичок в python и работаю с набором данных titanic для kaggle.Как заполнить значения для столбца в фрейме данных путем сопоставления значений из другого dataframe pandas
Я пытаюсь заполнить пару отсутствующих значений для функции кабины, используя строки, которые имеют одинаковые билеты. То есть, я хочу получить список дубликатов билетов и их соответствующее значение кабины и заменить нулевые значения на значения кабины, соответствующие одному и тому же билету.
В моем подходе я создал фреймворк данных со следующим кодом, состоящим только из одного экземпляра дубликата билета (учитывая, что билет имел значение кабины, чтобы идти вместе с ним, не имеет значения null), чтобы присвоить ему один значение кабины. Таким образом, я мог бы заполнить значения кабины в наборе тренировок (maindf) путем сопоставления.
ticket_dupl = maindf[(maindf.duplicated('Ticket')) & (maindf['Cabin'].notnull())][['Ticket','Cabin']].drop_duplicates('Ticket')
Это дает мне dataframe длины 50 с индексом perserved, Heres первые 7 рядов:
Ticket Cabin
88 19950 C23 C25 C27
124 35281 D26
137 113803 C123
193 230080 F2
195 PC 17569 B80
230 36973 C83
251 347054 G6
Есть ли способ, чтобы заполнить некоторые значения кабины в моем maindf путем сопоставления строк билета или индексы, сохраняющие значения, для которых билеты не совпадают? Не похоже, чтобы понять из других решений вопросы, подобные моим.
Кроме того, мне было интересно, был ли более эффективный способ достичь моей цели, а не создавать тактику данных, как я. Благодарю.
Я получаю эту ошибку, TypeError: не может использовать индексацию меток с помощью нулевого ключа –