Python如何读写CSV文件


Posted in Python onAugust 13, 2020

CSV文件是一种纯文本文件,它使用特定的结构来排列表格数据。

CSV文件内容看起来应该是下面这样的:

column 1 name,column 2 name, column 3 name
first row data 1,first row data 2,first row data 3
second row data 1,second row data 2,second row data 3
...

每段数据是如何用逗号分隔的。通常,第一行标识每个数据块——换句话说,数据列的名称。之后的每一行都是实际数据,仅受文件大小限制。

CSV文件通常由处理大量数据的程序创建。它们是一种从电子表格和数据库导出数据以及导入或在其他程序中使用数据的方便方法。例如,您可以将数据挖掘程序的结果导出到CSV文件中,然后将其导入到电子表格中,以分析数据、为演示生成图表或准备发布报告。

CSV文件非常容易通过编程处理。任何支持文本文件输入和字符串操作的语言(如Python)都可以直接使用CSV文件。

读取CSV文件内容

在Python中,使用csv库来读取CSV文件内容。在读文件之前,先创建一个a.csv的文件,内容是下面这样:

名字,部门,月份
John Smith,Accounting,November
Erica Meyers,IT,March

文件创建完成后,开始编写读取文件内容的程序:

import csv

with open('a.csv') as csv_file:
  csv_reader = csv.reader(csv_file,delimiter=',')
  line_count = 0

  for row in csv_reader:
    if line_count == 0:
      print(f'Column names are {", ".join(row)}')
      line_count += 1
    else:
      print(f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.')
      line_count += 1
    print(f'Processed {line_count} lines.')

写入数据到CSV文件

上面编写了读取内容的程序,下面继续编写一个写文件的程序。我们写到b.csv文件中。

import csv

with open('b.csv', mode='w') as employee_file:
  employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

  employee_writer.writerow(['John Smith', 'Accounting', 'November'])
  employee_writer.writerow(['Erica Meyers', 'IT', 'March'])

如果你感觉使用csv库读写效率比较地下,或者编写的代码太多。下面我介绍一种更高效的方法。

用pandas读csv

假设我们有一个c.csv文件,具体内容如下:

Name,Hire Date,Salary,Sick Days remaining
Graham Chapman,03/15/14,50000.00,10
John Cleese,06/01/15,65000.00,8
Eric Idle,05/12/14,45000.00,10
Terry Jones,11/01/13,70000.00,3
Terry Gilliam,08/12/14,48000.00,7
Michael Palin,05/23/13,66000.00,8

用pandas读取csv:

import pandas
df = pandas.read_csv('hrdata.csv')
print(df)

# 输出的df

#       Name Hire Date  Salary Sick Days remaining
# 0 Graham Chapman 03/15/14 50000.0          10
# 1   John Cleese 06/01/15 65000.0          8
# 2    Eric Idle 05/12/14 45000.0          10
# 3   Terry Jones 11/01/13 70000.0          3
# 4  Terry Gilliam 08/12/14 48000.0          7
# 5  Michael Palin 05/23/13 66000.0          8

用pandas写csv

让我们用新的列名将数据写入一个新的CSV文件:

import pandas
df = pandas.read_csv('hrdata.csv', 
      index_col='Employee', 
      parse_dates=['Hired'],
      header=0, 
      names=['Employee', 'Hired', 'Salary', 'Sick Days'])
df.to_csv('d.csv')

# d.csv文件内容

# Employee,Hired,Salary,Sick Days
# Graham Chapman,2014-03-15,50000.0,10
# John Cleese,2015-06-01,65000.0,8
# Eric Idle,2014-05-12,45000.0,10
# Terry Jones,2013-11-01,70000.0,3
# Terry Gilliam,2014-08-12,48000.0,7
# Michael Palin,2013-05-23,66000.0,8

如果你了解读取CSV文件的基础知识,那么当您需要处理导入数据时,就不会手足无措。基本的CSV Python库可以轻松地处理大多数CSV读取、处理和编写任务。如果你有很多数据要读取和处理,panda库还提供了快速和简单的CSV处理功能。

以上就是Python如何读写CSV文件的详细内容,更多关于Python读写CSV文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
linux系统使用python获取cpu信息脚本分享
Jan 15 Python
以一段代码为实例快速入门Python2.7
Mar 31 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
Jul 02 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python自动化测试无法启动谷歌浏览器问题
Oct 10 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
区分python中的进程与线程
Aug 13 #Python
python判断一个变量是否已经设置的方法
Aug 13 #Python
vscode+PyQt5安装详解步骤
Aug 12 #Python
python使用列表的最佳方案
Aug 12 #Python
Python实现播放和录制声音的功能
Aug 12 #Python
Python实现文件压缩和解压的示例代码
Aug 12 #Python
Python爬取数据并实现可视化代码解析
Aug 12 #Python
You might like
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
理解Javascript_13_执行模型详解
2010/10/20 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
Python中的localtime()方法使用详解
2015/05/22 Python
python连接mongodb密码认证实例
2018/10/16 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
django中的图片验证码功能
2019/09/18 Python
NumPy统计函数的实现方法
2020/01/21 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
python 录制系统声音的示例
2020/12/21 Python
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
介绍一下内联、左联、右联
2013/12/31 面试题
机械电子工程毕业生自荐信
2013/11/23 职场文书
初中地理教学反思
2014/01/11 职场文书
大学社团活动策划书
2014/01/26 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
工资收入证明
2014/10/07 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
预备党员介绍人意见
2015/06/01 职场文书
python随机打印成绩排名表
2021/06/23 Python