gpt4 book ai didi

python - 如何在Python中更有效地对csv文件中的列求和

转载 作者:行者123 更新时间:2023-11-30 23:18:57 26 4
gpt4 key购买 nike

这是我的数据:

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]}

输出说明:对于第一行中的每个国家/地区(阿尔巴尼亚、安道尔、亚美尼亚、奥地利和阿塞拜疆),我想从国家/地区列中获取按国家/地区划分的总和。

Andorra: [5,9] 
# 5 is sum for Lithuania in Andorra column
# 9 is sum for Israel in Andorra column

最佳答案

您可以使用the Pandas module这非常适合此类应用程序:

import pandas as pd

df = pd.read_csv('songfestival.csv')
gb = df.groupby('Country')
res = pd.concat([i[1].sum(numeric_only=True) for i in gb], axis=1).T
res.pop('Year')
order = [i[0] for i in gb]

print(order)
print(res)

#['Israel', 'Lithuania']
# Albania Andorra Armenia Austria Azerbaijan
#0 1 9 2 0 4
#1 1 5 1 0 9

要查询每列的结果,您可以简单地执行以下操作:

print(res.Albania)
print(res.Andorra)
...

关于python - 如何在Python中更有效地对csv文件中的列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com