Python下csv文件的加减乘除


前言

对于需要对比或者合并的csv数据,可以用简单的加减乘除方法

但前提是要对csv进行dataframe,然后才能进行操作。

本次操作是每个csv对平均值进行对比求差。


一、处理需求

对于得到的数据,需要与平均值进行比较,查看数据变化。

在这里插入图片描述

二、处理过程

1.代码分析过程

在这里插入图片描述

图中,黄色是读取到的文件中的csv文件,但是排序就很尴尬,序号排序是1,10,11…2,20,22…

csv文件是个嵌套的列表,故用list[0][0]得到第一个csv,也就是平均值,后续的排序就不关注了,反正都是和第一个比较

比较的过程是每后一个的csv减去第一个,所以第一次要进行判断两个csv是否相同(红色是第一次读到的csv文件,与list[0][0]进行对比),如果相同将数据赋给被减数并跳出本次循环。

后面再读取csv,判断不相同,就进行减运算(被减数值不再改变,永远为平均值)。

2.完整代码

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


if __name__ == '__main__':
    filenames_in = 'E://...//mat//num_day1'  # 输入文件的文件地址
    filenames_out = 'E://...//mat//num_day1'  # 新文件的地址
    pathDir = os.listdir(filenames_in)
    csv = [pathDir] # 获取所有csv文件
    ave_day = csv[0][0] # 提取第一个csv
    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, header=None))
        # df1 = df
        if ave_day == allDir:
            df1 = df
            continue
        # ave = pd.DataFrame(pd.read_csv(ave_day, header=None))

        ave_diff = df - df1
        diff = 'diff_' + needdate[0]    # 重命名
        domain2 = os.path.abspath(filenames_out)  # 处理完文件保存地址
        outfo = os.path.join(domain2, diff + '.csv')  # 拼接出新文件名字
        ave_diff.to_csv(outfo, encoding='utf-8')
        print(info, "处理完")



总结

新手小白,只能一点一点的处理问题。

路漫漫其修远兮,吾将上下而求索。

排序问题,如果有强迫症的同学可以考虑改良一下。
在这里插入图片描述
每天进步一点点!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值