Python批量处理csv文件(筛选列)

Python批量处理csv文件

前言

批量读取同一文件夹下的csv文件,进行数据处理
(这里是挑选需要的列向量,生成新文件),
保存到新文件夹(csv文件同名)


代码

#!/user/bin/env python3
# -*- coding: utf-8 -*-
import os
import re
import datetime
import numpy as np
import pandas as pd

starttime = datetime.datetime.now()	# 运行时间统计

if __name__ == '__main__':
    filenames_in = 'E:\program\MATLAB\project\data\day1\data'  # 输入文件的文件地址
    filenames_out = 'E:\program\MATLAB\project\data\day1\data_done2'  # 新文件的地址
    pathDir = os.listdir(filenames_in)
    for allDir in pathDir:
        child = re.findall(r"(.+?).csv", allDir)  # 正则的方式读取文件名,去扩展名
        if len(child) >= 0:  # 去掉没用的系统文件
            newfile = ''
            needdate = child  #### 这个就是所要的文件名
        domain1 = os.path.abspath(filenames_in)  # 待处理文件位置
        info = os.path.join(domain1, allDir)  # 拼接出待处理文件名字

        # ------------数据处理过程---------------
        print(info, "开始处理")
        # df = pd.DataFrame(pd.read_csv(info, index_col=0))   # 读取文件数据,以第一列为索引
        # df = df.iloc[:, :-1]    # 删除最后一列数据
        df = pd.DataFrame(pd.read_csv(info, index_col=0, usecols=[0, 1, 3, 4, 5, 6, 7, 8, 10]))  # 选取固定列的值生成新表
        # print(df)
        domain2 = os.path.abspath(filenames_out)  # 处理完文件保存地址
        outfo = os.path.join(domain2, allDir)  # 拼接出新文件名字
        df.to_csv(outfo, encoding='utf-8')
        print(info, "处理完")

endtime = datetime.datetime.now()
print(endtime - starttime)


总结

第一次写博客,也是浏览了太多的网页终没有什么效果,就记录下来供自己和大家后续使用。有什么想法大家可以相互学习交流。

文件处理很简单,主要就是记录批量读取和保存文件。

代码参考:

链接: https://www.zhangshengrong.com/p/Wx1JVWgp1o/

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值