4
回答
Python 实现一个简单的统计
终于搞明白,存储TCO原来是这样算的>>>   

有下面一段列表,分为两列,第一列是人名,第二列是对应的分值,目的要统计相应的名字后面对应的数字的和,并写入到文件。类似于 Excel 里面的数据透视求和。从文件里面读这两列,读文件之前不知道到底文件中有多少个名字。

张三    0.5

李四    0.8

张三    0.25

李四    0.12

王五    0.26

赵六    1.23

输出结果:

张三    0.75

李四    0.92

王五    0.26

赵六    1.23

共有4个答案 最后回答: 2年前
excle 应该可以做这样的事,不用编程,不会请找度娘,我也不会.
--- 共有 1 条评论 ---
kounijiwa我想实现以下,我大致的思路是先获取名字的集合,转换成列表,然后对名字的集合到大表中进行遍历,获取对应的数值相加,直至名字全部遍历结束。 练习以下循环的过程。 2年前 回复
"""Use python dict opject,aa is the name"""
countMap=dict()
try :
    a=countMap["aa"]
    countMap["aa"]=a+5
except KeyError as e:
    countMap["aa"] =5  
print(countMap["aa"])  
try :
    a=countMap["aa"]
    countMap["aa"]=a+5
except KeyError as e:
    countMap["aa"] =5 
print(countMap["aa"]) 

 



import pandas as pd
df=pd.read_csv('a.csv')
df.groupby('name').aggrate({'score':sum})
print df



首先给你的csv加上header,如果不加就把那句改为
df=pd.read_csv('a.csv',header=["name","score"])




--- 共有 4 条评论 ---
Eumenidies回复 @kounijiwa : 时间多的话,有一本Python For Data Analysis的书讲这个的。 教程就百度下或者官网的教程吧。 2年前 回复
Eumenidies回复 @kounijiwa :主要就是DataFram这个结构,它实现了列级别的加减乘除,可以用ipython主要看下构造函数的参数啥意思。然后看教程学习下,布尔表达式,cum_value(),describe(),sum(),as_type(),apply(),applymap(),groupby().aggregate()这些,注意部分函数的axis参数。自己探索下吧。 2年前 回复
kounijiwa这个库怎么使用的,在下菜鸟一枚,求指点。 2年前 回复
Eumenidies建议lz如果用python做统计的话,好好看下pandas这个库,你能想到的他都能做到,还能画图,还能to_csv() 2年前 回复
# -*- coding: utf-8 -*-

import re

text = '''
张三    0.5
李四    0.8
张三    0.25
李四    0.12
王五    0.26
赵六    1.23
'''

p = re.compile('(.*?)\s+([0-9]*\.?[0-9]+)')

d = {}

for r in p.findall(text):
    k = r[0]
    v = float(r[1])
    if k in d:
        d[k] += v
    else:
        d[k] = v

print(d)



用原始的办法撸了一个。



顶部