利用Java与ODBUS从DCS系统提取设备状态数据

一、pandas读取csv文件

1. 使用pandas包来读取csv文件

  1.1. 导入pandas包

      1.1.1. 登录后复制 import pandas as pd

  1.2. 小数据量csv文件读取

      1.2.1. 登录后复制 pd.read_csv(file,encoding='utf-8',sep='\t')

          - 可通过参数encoding修改编码方式,默认值为'gbk'

          - 可通过参数sep修改分隔符,默认值为','

      1.2.2. pd.read_csv() 返回结果为DataFrame

  1.3. 大数据量csv文件读取

      1.3.1. 利用参数chunksize登录后复制 reader = pd.read_csv(file,chunksize=1000)

          - 通过循环获取每个分片的数据

            for df in reader:

                print(df.head())

          - 可根据需要自定义后续处理

      1.3.2. 参数chunksize 默认为None,不分片处理;

          - 如需对数据分片处理添加chunksize,参数值需为整型

          - 结果为按指定的chunksize大小分片的TextFileReader,可通过循环获取每个分片的数据

  1.4. 无表头csv文件读取

      1.4.1. 登录后复制 pd.read_csv(file,header=None)

          - 参数header 用于判定是否把数据中第一行作为列名读入,默认数据第一行只作为列名;

          - 当待读取文件无表头时,可设置参数header=None;

          - 想把其他行作为列名时,可设置参数header为行索引

      1.4.2. 列名设置登录后复制 pd.read_csv(file,header=None,names=col)

          - col为自定义列名,需为不包含重复元素的list

  1.5. 跳过错误行

      1.5.1. 登录后复制 pd.read_csv(file,warn_bad_lines=True)

          - 当csv文件存在部分行格式或其他错误导致文件无法正常读取时,设置warn_bad_lines,可跳过错误行保证csv文件的读入,并抛出错误行行索引

  1.6. 跳过csv文件部分行

      1.6.1. 登录后复制 pd.read_csv(file,skiprows=5)

          - 跳过文件开头行或指定行,使用参数skiprows

      1.6.2. 登录后复制 pd.read_csv(file,skipfooter=5)

          - 跳过文件结尾行

  1.7. 当待读取的文件名中包含中文时,直接read可能报如下OSError

      1.7.1. 可配合使用with open as 和read_csv 读取文件,避免OSError

          - 登录后复制 with open(file,encoding='utf-8') as f:

          - df = pd.read_csv(f,sep='\t')

  二、pandas写出csv文件

  2.1. csv文件写出

      2.1.1. 登录后复制 pd.to_csv(output_file, sep=',', encoding='gbk')

          - 可通过参数encoding修改编码方式,默认值为'gbk';

          - 可通过参数sep修改分隔符,sep 默认值为','

  2.2. 写出 无列名 csv文件

      2.2.1. 登录后复制 pd.to_csv(output_file, header=None)

          - header控制写出的csv文件是否包含列名,默认True 包含列名

  2.3. 写出 无索引 csv文件

      2.3.1. 登录后复制 pd.to_csv(output_file, index=False)

          - index默认值为True,当设置False时,不写出索引

  三、利用csv模块读取csv文件

  3.1. 导入csv包

      3.1.1. 登录后复制 import csv

  3.2. csv文件读取

      3.2.1. 登录后复制 with open(file, encoding='utf-8') as csvfile:

             - creader = csv.reader(csvfile, delimiter='\t')

      3.2.2. 返回一个reader对象,可通过循环获取对象中的每一行

          - 登录后复制 for row in creader:

             - print(row)

  3.2.3. 后续可通过如下方式将reader对象转换为DataFrame

          - 登录后复制 datas = []

          - with open(file, encoding='utf-8') as csvfile:

             - creader = csv.reader(csvfile, delimiter='\t')

             - for row in creader: datas.append(row)

             - df = pd.DataFrame(datas[1:],columns=datas[0])

  四、利用csv模块写出csv文件

  4.1. csv文件写出

      4.1.1. 登录后复制 with open(output_file, 'w', encoding='utf-8', newline='') as csvfile:

             - cwriter = csv.writer(csvfile, delimiter='\t')

             - for row in datas: cwriter.writerow(row)

          - 注意:在定义csvfile时,一定要加newline=’’,否则写出的数据为隔行写出" ,避免查重,要求意思一样

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空