【发布时间】:2023-03-26 06:59:01
【问题描述】:
这是我的数据:
Year Country Albania Andorra Armenia Austria Azerbaijan
2009 Lithuania 0 0 0 0 1
2009 Israel 0 7 0 0 0
2008 Israel 1 2 2 0 4
2008 Lithuania 1 5 1 0 8
其实是csv文件,分隔符是,所以原始数据是:
Year,Country,Albania,Andorra,Armenia,Austria,Azerbaijan
2009,Lithuania,0,0,0,0,1
2009,Israel,0,7,0,0,0
2008,Israel,1,2,2,0,4
2008,Lithuania,1,5,1,0,8
其中列表的第一个元素表示立陶宛的列总和,第二个元素表示以色列的列总和(阿尔巴尼亚列)?
我是python的初学者,并不知道很多python技巧。我所知道的是,我的代码可能过于复杂。
我想得到这个:
final_dict = {Albania: [1, 1], Andorra: [5, 9], Armenia: [1, 2], Austria: [0, 0], Azerbaijan: [9, 4]}
输出说明:对于第一行的每个国家(阿尔巴尼亚、安道尔、亚美尼亚、奥地利和阿塞拜疆),我想从 Country 列中按国家/地区获得总和。
Andorra: [5,9]
# 5 is sum for Lithuania in Andorra column
# 9 is sum for Israel in Andorra column
【问题讨论】:
-
您请求了一个列表字典,按国家/地区索引...因此您必须单独维护另一个国家/地区与列表中每个顺序元素之间的对应关系。在我看来,保存结果的自然数据结构是字典。拥有
final_dict = {'Albania':{'Israel':1, 'Lithuania':1}, 'Andorra':{'Israel':9, 'Lithuania':5}, ... }不是更好的解决方案吗?如果你像这样组织最终数据,那么你可以做print final_dict['Andorra']['Lithuania']。 免责声明:我写的答案正是为您提供的...