I'm trying to create a loop to populate a dictionary within a dictionary from a Series:
The expected result is:
{1: {'KEY Mult. by 10': 10, 'KEY Add by 10': 11},
2: {'KEY Mult. by 10': 20, 'KEY Add by 10': 12},
3: {'KEY Mult. by 10': 30, 'KEY Add by 10': 13},
4: {'KEY Mult. by 10': 40, 'KEY Add by 10': 14},
5: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15}}
what I'm doing is:
series_1 = pd.Series([1,2,3,4,5])
first_dict = dict() # creating first level of Dict
second_dict = dict({'KEY Mult. by 10': 0, # creating second level of Dict
'KEY Add by 10': 0})
for i in series_1:
first_dict[i] = second_dict
first_dict[i]['KEY Mult. by 10'] = i *10
first_dict[i]['KEY Add by 10'] = i + 10
The result from the above ends up being:
{1: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15},
2: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15},
3: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15},
4: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15},
5: {'KEY Mult. by 10': 50, 'KEY Add by 10': 15}}
Then, when I try to change value for one of the keys, it changes for all of them:
first_dict[3]['KEY Mult. by 10'] = 20
print(first_dict)
{1: {'KEY Mult. by 10': 20, 'KEY Add by 10': 15},
2: {'KEY Mult. by 10': 20, 'KEY Add by 10': 15},
3: {'KEY Mult. by 10': 20, 'KEY Add by 10': 15},
4: {'KEY Mult. by 10': 20, 'KEY Add by 10': 15},
5: {'KEY Mult. by 10': 20, 'KEY Add by 10': 15}}
Can any one help me please?