文章目录

  • 一、pandas读取csv文件
  • 二、pandas写出csv文件
  • 三、利用csv模块读取csv文件
  • 四、利用csv模块写出csv文件

一、pandas读取csv文件

1.导入pandas包

import pandas as pd

2.小数据量csv文件读取

pd.read_csv(file,encoding='utf-8',sep='\t')
# 可通过参数encoding修改编码方式,默认值为'gbk';sep修改分隔符,sep 默认值为',';

pd.read_csv() 返回结果为DataFrame

3.大数据量csv文件读取,利用参数chunksize

reader = pd.read_csv(file,chunksize=1000)
for df in reader:  # 通过循环 获取每个分片的数据print(df.head())  # 根据需要自定义后续处理

参数chunksize 默认为None,不分片处理;如需对数据分片处理添加chunksize,参数值需为整型,结果为按指定的chunksize大小分片的TextFileReader,可通过循环获取每个分片的数据

4.无表头csv文件读取

pd.read_csv(file,header=None)

参数header 用于判定是否把数据中第一行作为列名读入,默认数据第一行只作为列名;当待读取文件无表头时,可设置参数header=None;想把其他行作为列名时,可设置参数header为行索引
注意:header=0表示行索引为0的数据,即数据的第一行,非csv文件第一行

5.列名设置

pd.read_csv(file,header=None,names=col)  # col为自定义列名,需为不包含重复元素的list

当header=None时,可用参数names自定义列名,如未定义则列名默认为由列数生成的整数列表

6.跳过错误行

pd.read_csv(file,warn_bad_lines=True)

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

7.跳过csv文件部分行

# 跳过文件开头行或指定行,使用参数skiprows
pd.read_csv(file,skiprows=5)  # skiprows 值根据需要设置,可传整型或元素为整型的list
# 跳过文件结尾行
pd.read_csv(file,skipfooter=5) # skipfooter 默认值为值,具体可根据需要设置,可传整型

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

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

with open(file,encoding='utf-8') as f:df = pd.read_csv(f,sep='\t')   # encoding、sep参数根据需要调整

二、pandas写出csv文件

1.csv文件写出

pd.to_csv(output_file, sep=',', encoding='gbk')
# 可通过参数encoding修改编码方式,默认值为'gbk';sep修改分隔符,sep 默认值为',';

2.写出 无列名 csv文件

pd.to_csv(output_file, header=None)  # header控制写出的csv文件是否包含列名,默认True 包含列名

3.写出 无索引 csv文件

pd.to_csv(output_file, index=False)  # index默认值为True,当设置False时,不写出索引

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

1.导入csv包

import csv

2.csv文件读取

with open(file, encoding='utf-8') as csvfile:creader = csv.reader(csvfile, delimiter='\t')  # 参数encoding、delimiter根据需要自定义

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

for row in creader:print(row)  # reader对象的每一行为字符串列表

后续可通过如下方式将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文件

1.csv文件写出

with open(output_file, 'w', encoding='utf-8', newline='') as csvfile:cwriter = csv.writer(csvfile, delimiter='\t')for row in datas:cwriter.writerow(row)# cwriter.writerow(['John', 'Lily'])  # 自定义写出内容时,可直接将list传给cwriter.writerow()

注意:在定义csvfile时,一定要加newline=’’,否则写出的数据为隔行写出

csv文件读取与写出相关推荐

  1. IO学习(四)文件读取与写出

    要读取一个文件,有以下几个步骤: 1.建立与文件的联系:File对象,文件必须存在 2.选择流:按字节流读取,文件输入流 InputStream FileInputStream 3.操作:byte[] ...

  2. 使用EasyExcel进行文件的读取与写出(根据目录看更清晰)

    EasyExcel简介 Java领域解析.生成Excel比较有名的框架有Apache poi.jxl等.但他们都存在一个严重的问题就是非常的耗内存.如果你的系统并发量不大的话可能还行,但是一旦并发上来 ...

  3. fme:AIXM4.5和5.1读取、写出和验证

    fme:AIXM4.5和5.1读取.写出和验证 介绍 AIXM是航空信息交换模型格式.FME支持读取和写入AIXM版本4.5(XML)和AIXM版本5.1(GML).AIXM5.1读写需要FME201 ...

  4. 超大Excel读取和写出(支持50万+)(一)

    超大Excel读取和写出(支持50万+) 一.现状 假设我们的测试或生产环境的内存条件有限,比如说2GB(当然小数据的导入和导出不在本文的讨论范围,因为导入和导出它们几乎不存在内存溢出问题). 这里, ...

  5. Java CSV文件读取、写入及追加

    Java CSV文件读取.写入及追加 https://blog.csdn.net/liq816/article/details/81286472 追加: FileOutputStream out = ...

  6. 熊猫read_csv()–将CSV文件读取到DataFrame

    Pandas read_csv() method is used to read CSV file into DataFrame object. The CSV file is like a two- ...

  7. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

  8. Flink 使用Table Api 读取文件数据并写出到文件中

    前言 在上一篇我们演示了如何使用Flink 的Table Api 读取文件数据,并过滤特定字段的数据,本篇在上一篇的基础上,将从CSV文件中读取的数据重新输出到一个新的CSV文件中: 在实际业务场景下 ...

  9. python csv文件数据根据逗号分隔_Python 3读取以逗号分隔的CSV文件操作变量并写到CSV...

    我是Python的新手,并希望阅读下面列出的内容的CSV文件: DN, whenCreated, name, pwdLastSet, location "CN=Jackson2,OU=Dom ...

最新文章

  1. Python find方法与rfind方法的使用
  2. Python程序设计题解【蓝桥杯官网题库】 DAY2-IDLE与基础练习
  3. 通用即插即用(UPnP)
  4. Qt之QStackedWidget
  5. Adwords 账户细分思路
  6. Angular里的RouterOutlet指令学习笔记
  7. [深度学习] 自然语言处理 --- Self-Attention(一) 基本介绍
  8. 永远太远,是时候离开了
  9. 【kafka】Kafka中的动态配置源码分析
  10. java验证码制作思路_Java实现验证码制作之一自己动手
  11. SSD Network Architecture--keras version
  12. 通用for_each清理容器模板函数
  13. Android:应用宝省流量更新
  14. Java打印的几种方法
  15. 播放.avi后缀视频报出0xc00d5212,编码格式不支持
  16. 移动硬盘中安装ubuntu系统——Vmware Workstation安装
  17. solidity msg.sender.transfer发送给谁
  18. python_绘制玫瑰图_南丁格尔图
  19. 小麦苗的微信公众号开通啦,欢迎大家扫码关注
  20. LDF转Excel;LDF转位定义;Excel转LDF;Excel转位定义;MatrixCreat(四)之工具使用

热门文章

  1. 基于人工智能的计算机课程教学系统设计,【智能教学系统的特点与设计方法】人工智能系统有哪些...
  2. AS02修改资产折旧码报错:在财务会计中会计年度2018已结束(Fiscal year 2018 is already closed in Financial Accounting  (message
  3. 拆分系统拆分盘盛出不穷,互助系统的延续走出新的路子,农场果园直销系统返利系统开始火了!
  4. 欢乐潜水艇洋流计算表
  5. [附源码]JSP+ssm计算机毕业设计高校设备采购审批管理系统r1er5【源码、数据库、LW、部署】
  6. DirectX基本框架
  7. IoU系列(IoU, GIoU, DIoU, CIoU)
  8. 当前流行的前端及框架介绍(React和Vue)
  9. array.some()用法
  10. 安装Go语言Leaf框架