先举例 假如有一 a.csv(内容)如下:
index 职位 薪资 index 职位 薪资
0 经理 6万 1 经理 5.5万
2 经理 7万 3 协理 10万
4 协理 8万 5 总经理 20万
5 课长 4万
csv档内容如上,我的想法是将所有职位相同的薪资加起来除
于平均数,例如经理三位(6万+5.5万+7万)/3 =6.166万
然后从新编排csv档为
index 职位 薪资
0 经理 6.166万
讲白一点就是把相同职位的资料整还在一起,然后薪资就求他的平均值
一开始的写法如下:
fx = open(path,'r')
fxr = csv.reader(fx)
for row in fxr:
开始主程式对资料内容进行判读
这种写法很直观也很笨,随着档案越来越大 执行的速度也不够快
我想请问是否有没有哪些python的模组是可以做csv档案的重新汇整
而且可以对内容值作相互运算(加减乘除之类的)
我之前有看pandas 的dataframe 好像不错用 但是他好像没有对单一列行
的某个值可以做加减乘除用算的功能,不知有没有版友知道有没有更棒的
的模组又或者pandas就可以做得到我想要的功能。
如果CSV很大,逐列是省内存吧(空间换时间)?不知道Pandas遇到很大CSV内存会不会爆?
就 pandas 来处理,语法可以很干净达成需求df = pandas.read_csv('file.csv')df.groupby(['title'])['salary'].agg(['mean'])大概这样的概念??
作者:
ThxThx (洗洗睡)
2018-05-09 05:14:00这样的想法很直观可是没有很笨Simple is better than complex你有用profiler 确定慢是慢在哪里?但如果想要简洁一些 pandas的确可以用在你的问题上
k大的方式可以解决你的问题 但不知你的资料量有多少?
若是太多就进数据库,用 sql groupby 处理也很快