我是Python 3初学者,我正在尝试练习一些例子。 我的字典数据(年,月)格式如下:
year month yearmonth x1 x2 x3 ...
1999 1 199901 10 20 30 ...
1999 3 199903 10 20 30 ...
2000 4 200004 10 20 30 ...
2000 9 200009 10 20 30 ...
2000 10 200010 10 20 30 ...
.................................
.................................
我希望每年为某些密钥获取小计,例如:仅变量x2
的小计。预期的结果是返回以下内容:
year totalx2
1999 40
2000 60
.........
当然,在我的数据中,这里的年份和月份比此处更多。如果特定年份缺少月份,我会假设在添加12个月小计时该值为0.
任何帮助都会很棒!感谢您的初学者患者。 乔
答案 0 :(得分:0)
我建议使用pandas库来执行此操作。这里有一个类似的答案:
答案 1 :(得分:0)
你可以尝试在新的字典中按年份对值进行分组,这样可以很容易地操作,然后做你的事情。它会看起来像这样
from collections import defaultdict
def group_by_year(list, key):
total = "total_" + key
new_dict = defaultdict(lambda: 0)
for row in list:
year = row["year"]
if not new_dict[year]:
new_dict[year] = {"year": year, total: row[key]}
else:
new_dict[year][total] += row[key]
return [new_dict[key] for key in new_dict]