Python 如何在不使用pandas或import的情况下按组求和/聚合
因此,我基本上不允许使用任何导入或其他库,如pandas或groupby。 我必须对数据进行分类,并总结出相应的值。数据位于csv文件中。 比如说,Python 如何在不使用pandas或import的情况下按组求和/聚合,python,Python,因此,我基本上不允许使用任何导入或其他库,如pandas或groupby。 我必须对数据进行分类,并总结出相应的值。数据位于csv文件中。 比如说, **S** C **T** A T 100 A. B 102 A. T. 200 A B. 100 C T 203 C. T. 200 C B 200 C T
**S** C **T**
A T 100
A. B 102
A. T. 200
A B. 100
C T 203
C. T. 200
C B 200
C T 200
C. B 200
我的预期结果应该是
S C T
A T 300
A B. 202
C T 403
C B. 200
C T. 200
C B. 200
输出:
state candidate total votes
Alaska Trump 300
Alaska Biden 202
colorado Trump 403
colorado Biden 200
California Trump 200
California Biden 200
state,candidate,total votes
Alaska,Trump,300
Alaska,Biden,202
colorado,Trump,403
colorado,Biden,200
California,Trump,200
California,Biden,200
考虑到您有一个csv文件(即按逗号分割的列):
打开('myfile.csv','r')作为文件:
header=file.readline().rstrip()
数据={}
对于文件中的行:
状态,候选,值=行。拆分(',')
k、 value=(状态,候选),int(值)
数据[k]=data.get(k,0)+值
结果_csv='\n'.join([header]+[f”{','.join(k)},{v}表示数据项()中的k,v)
打印(结果\u csv)
输出:
state candidate total votes
Alaska Trump 300
Alaska Biden 202
colorado Trump 403
colorado Biden 200
California Trump 200
California Biden 200
state,candidate,total votes
Alaska,Trump,300
Alaska,Biden,202
colorado,Trump,403
colorado,Biden,200
California,Trump,200
California,Biden,200
myfile.csv的原始内容是(如有必要,使用str.replace
):
在数据上循环并在字典中收集
{(州,候选人):投票}您的文件实际上有这样的标点符号和打字错误吗?这对你有关系吗?很抱歉,我当时急急忙忙把它贴出来,这是我的打字错误和标点符号