aabujamra
aabujamra

Reputation: 4636

Turning weekly to monthly data in Python dictionary

I'm trying to turn this dictionary:

dic = {'2007-10-21': '53', '2007-10-28': '50', '2007-11-05': '100','2007-11-06': '99'}

Into something like this:

dic = {'2007-10': '103', '2007-11': '199'}

Since I need to do that in scale, pythonly speaking I need to sum all the values which its keys start with the same 7 characters.

Upvotes: 1

Views: 50

Answers (1)

Fawzan
Fawzan

Reputation: 4849

Try this,

__author__ = 'Fawzan'

dic = {'2007-10-21': '53', '2007-10-28': '50', '2007-11-05': '100', '2007-11-06': '99'}

# create a new dictionary

newDic = {}

# iterate the old dictionary

for key in dic:

# get the desiresd string for comparision
k = key[0:7]

# for debug
print(k)

# if the key is already in the new dictionary, then add the value to existing key
if (k in newDic):
    newDic[k] += float(dic[key])

# else append the key, value
else:
    newDic[k] = float(dic[key])

# print and check the answer :)

print(newDic)

Upvotes: 1

Related Questions