Я пытаюсь создать новый столбец в моем фрейме данных pandas (df). Значение для каждой строки в этом столбце (назовем его column_new) должно смотреть на ссылочный столбец (column_ref), который уже существует во фрейме данных. Я использовал уникальные значения в column_ref и назначил их как ключи в словаре, d:
d = {'column_ref_value1': 'a',
'column_ref_value2': 'b',
'column_ref_value3': 'c',}
Значения в dict (d) - это значения, которые я хочу присвоить column_new в моем фрейме данных. Вот что я безуспешно пытался:
for i in df['column_ref']:
for k, v in d.items():
if k == i:
df['column_new'] = v
Когда я вызываю свой df, я вижу, что column_new заполнен значением 'c' в каждой строке, и я не уверен, почему. Я предполагаю, что моя проблема связана с неправильным повторением фрейма или серии данных pandas.
Заранее спасибо!
О боже, да! Это было так просто. Спасибо! Я собираюсь прочитать много книг о .map () прямо сейчас. Какие еще функции, которые необходимо знать, вы бы поставили так же, как .map ()?






Вы можете использовать заменять():
df['column_new'] = df.replace({'column_ref': d})
df['column_new'] = df['column_ref'].map(d)делает то, что вы хотите?