pandas处理csv,分组统计

需求: /tmp/demo/data下有10个csv文件,按col0和col1分组分别统计col2和col3总和并计算col2和col3的商

# encoding:utf-8
import pandas 
import os


data_root = '/tmp/demo/data/'          
all_csv =  '/tmp/demo/all.csv' 
result_csv = '/tmp/demo/result.csv'

#-----------------------------------------------
# 将所有的文件合并到一个总和文件all_csv中

# 如果已经存在总和文件则删除总和文件防止历史干扰

if os.path.exists(all_csv):
    os.remove(all_csv)
# 获取所有的csv文件 data_list = [data_root+_ for _ in os.listdir(data_root)] # 把第一个文件写到汇总文件,并包含表头 all_head = pandas.read_csv(data_list[0]) all_head.to_csv(all_csv,encoding="utf_8_sig",index=False) # 把剩余的文件合并到汇总文件,不包含表头 for i in range(1, len(data_list)): all_i = pandas.read_csv(data_list[i]) all_i.to_csv(all_csv,encoding="utf_8_sig",index=False, header=False, mode='a+') # 读取汇总文件 all_all = pandas.read_csv(all_csv, encoding="utf-8") # 按"col0","col1"列分组统计col2 col3的总和 res = all_all.groupby(["col0","col1"]).agg({"col2":sum, "col3":sum}).reset_index() # 添加一列col4(col2/col3) res.insert(3,"col4",res["col2"]/res["col3"]) print(res) # 把结果写进结果文件 res.to_csv(result_csv, encoding="utf_8_sig",index=False)

 

转载于:https://www.cnblogs.com/smileyes/p/11245679.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值