zoukankan      html  css  js  c++  java
  • python 使用pandas 处理 EXCEL 合并

    工作里面有些很恶心的东西。就是合并excel, 所以为了解放自己,开始执行程序操作。 

    这次主要是简单的,一次性操作。 后续跟进。

    1  遍历文件夹

    2 读取添加至df

    3 输出至本地文件夹。 

     里面遇到的困难,大多都是一些读取,存储的操作,本质上,这个行文逻辑没有什么太多可讲的。 

    还是学习下pandas ,减轻工作量趴。 受不了

    # _*_coding:utf-8 _*_
    import pandas as pd
    import numpy as np
    import os
    import time
    
    #  主要是简单合并excel, 太多了。麻烦的很,不想搞 。
    # 地址
    # 修改一下,换一个新的保存地址。最好加上时间
    
    path = r"C:Users1Desktop工作202106	est"
    
    path1 = r"C:Users1Desktop工作202106save"
    
    # 当前时间格式,很有用。
    tim = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
    
    # print(path + '\' + tim + '.xlsx')
    # print(a)
    
    filenames = os.listdir(path)
    df = pd.DataFrame()
    # 遍历需要文件夹所有文件
    
    for i in filenames:
        #     print (path + '\'+ i )   -- 验证地址
        data = pd.read_excel(path + '\' + i)
        df = df.append(data)
    
    adres = path1 + '\' + tim + '.xlsx'
    
    print(adres)
    df.to_excel(adres)
    

      

    修改版本: 分开写,会比较好维护些。处理就处理,保存就保存。虽然很简单。没有必要这样做,但是这样写的好处是培养思维。

    # _*_coding:utf-8 _*_
    import pandas as pd
    import numpy as np
    import os
    import time
    
    
    #  主要是简单合并excel, 太多了。麻烦的很,不想搞 。
    # 地址
    # 修改一下,换一个新的保存地址。最好加上时间
    
    class yuchuli:
        # 初始化数据
        def __init__(self):
            self.pd = pd
            # 开始地址
            self.path = r"C:Users1Desktop工作202106	est"
            # 输出保存地址
            self.save = r"C:Users1Desktop工作202106save"
            # 时间格式
            self.tim = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
    
        # 数据合并
        def get_data(self):
            filenames = os.listdir(self.path)
            df = self.pd.DataFrame()
            for i in filenames:
                #     print (path + '\'+ i )   -- 验证地址
                data = pd.read_excel(self.path + '\' + i)
                df = df.append(data)
            return df
    
        # 数据处理
        def deal_data(self):
            df = self.get_data()
            str = 'h'
            # 去除重复
            df1 = df.drop_duplicates()
            # 增加筛选 特定文档。 不想筛选就注释掉。
            if '营业状态' in df.columns:
                str = '营业状态'
                df1 = df1[df1['营业状态'].isin(['正常营业', '未上线', '歇业'])]
                a = 1
    
            return df1, str
    
        # 保存数据
        def save_data(self):
            #  这样可以少跑一次速度更快。获取数据存起来。
            data = self.deal_data()
            # 数组
            data1 = data[0]
            # 营业状态
            str = data[1]
            # str = 'h'
            # if '营业状态' in data.columns:
            #     str = '筛选过后'
            addr = self.save + '\' + str + self.tim + '.xlsx'
            print(addr)
            data1.to_excel(addr)
    
    
    if __name__ == '__main__':
        yuchuli().save_data()
        a = 1
    

      

  • 相关阅读:
    Container With Most Water(LintCode)
    Single Number III(LintCode)
    Single Number II(LintCode)
    Spiral Matrix(LintCode)
    Continuous Subarray Sum II(LintCode)
    kubernetes外部访问的几种方式
    kubernetes 数据持久化
    kubernetes deployment
    kubernetes service访问原理
    kubernetes namespace
  • 原文地址:https://www.cnblogs.com/sakura3/p/14871706.html
Copyright © 2011-2022 走看看