Я пытаюсь сделать пример в разделе Использование Python & Pandas, чтобы заменить NaN в столбце «размер» конкретным значением, в зависимости от города. В приведенном ниже примере я пытаюсь присвоить значение 18, если город является Сент-Луисом.
Я использовал лямбда-функцию, чтобы сделать это, поскольку в исходном кадре данных есть много строк с повторением названий городов. и только немногие из них имеют значения NaN.
когда я запускаю код, я получаю сообщение об ошибке - KeyError: ('size', 'произошел в индексе City')
ниже приведен фрагмент кода-
raw_data = {'City' : ['Dallas', 'Chicago', 'St Louis', 'SFO', 'St Louis'],
'size': [24, 36, 'NaN', 'NaN', 22],
'Type' : ['Pie', 'Hallo', 'Zombi', 'Dru', 'Zoro']
}
df = pd.DataFrame(raw_data)
df
df['size'] = df.apply(lambda x : x['size'].fillna(value = 18 if x['City' == 'St Louis'] else x['size'], axis = 1, inplace = True))
df
Ожидается - 18 будет заполнено в столбце размера для фактического Сент-Луиса - KeyError: ('size', 'произошло в индексе City')