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 相关文章推荐
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python django实现简单的邮件系统发送邮件功能
Jul 14 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
使用Python制作一个打字训练小工具
Oct 01 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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队列的实现
2019/03/14 PHP
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
详解Python的Django框架中的通用视图
2015/05/04 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python实现视频下载功能
2017/03/14 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
驻村工作先进事迹
2014/08/14 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
承诺函范文
2015/01/21 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书