Вам нужно Series.to_dict
вместо DataFrame.to_dict
путем выбора столбца Mapping
для Series
:
name_dict = df.set_index('Orig_Nm')['Mapping'].to_dict()
Также работает выбор с помощью клавиши:
name_dict = df.set_index('Orig_Nm').to_dict()['Mapping']
РЕДАКТИРОВАНИЕ:
В вашем решении после set_index
создан один столбец DataFrame
, поэтому функция to_dict
создает вложенный словарь - первым ключом является имя столбца:
d = {'Orig_Nm': ['Group', 'ID_No', 'Name'],
'Mapping': ['Zone', 'Identification', 'Final_Name']}
df = pd.DataFrame(d)
print (df)
Orig_Nm Mapping
0 Group Zone
1 ID_No Identification
2 Name Final_Name
print (df.set_index('Orig_Nm'))
Mapping
Orig_Nm
Group Zone
ID_No Identification
Name Final_Name
print (type(df.set_index('Orig_Nm')))
<class 'pandas.core.frame.DataFrame'>
Поэтому во избежание этого необходимо выбрать этот столбец в Series
:
print (df.set_index('Orig_Nm')['Mapping'])
Orig_Nm
Group Zone
ID_No Identification
Name Final_Name
Name: Mapping, dtype: object
print (type(df.set_index('Orig_Nm')['Mapping']))
<class 'pandas.core.series.Series'>