zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Eclipse 插件安装、升级和卸载的方法
    Eclipse中Spring插件的安装
    为eclipse离线安装hibernate tools插件
    Eclipse中Hibernate插件的安装
    Nginx安装配置
    app自动更新(android)
    PhoneGap应用图标icon和启动页面SplashScreen
    highcharts图表的图例legend
    安装android的sdk
    设置全屏
  • 原文地址:https://www.cnblogs.com/smileyes/p/11245679.html
Copyright © 2011-2022 走看看