У меня проблема, когда я хочу заменить определенные значения, которые удовлетворяют условию, и заменить значения, основанные на другом условии.
Пример кадра данных (df)
Gender Surname Ticket
` 0 masc Family1 a12`
` 1 **fem NoGroup aa3**`
` 2 boy Family1 125`
` 3 **fem Family2 aa3**`
` 4 fem Family4 525`
` 5 masc NoGroup a52`
Условие для замены значений de во всех строках столбца df ['Surname']:
if ((df['Gender']!= masc) & (df['Surname'] == 'NoGroup'))
Код должен искать строку, имеющую одинаковый тикет, и заменять соответствующее значение Фамилии, в противном случае сохранить уже существующее значение ('noGroup').
В этом примере [Фамилия'] значение в строке 1 (' noGroup ') следует заменить на' family2 ', что соответствует строке 3.
Я пробовал таким образом, но это не сработало
for i in zip((df['Gender']!='man') & df['Surname']=='noGroup'):
df['Surname'][i] = df.loc[df['Ticket']==df['Surname'][i]]