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 ftp上传文件
Feb 13 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
python实现随机梯度下降法
Mar 24 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
pandas 选取行和列数据的方法详解
Aug 08 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
40个你可能不知道的Python技巧附代码
Jan 29 Python
Python while true实现爬虫定时任务
Jun 08 Python
python如何支持并发方法详解
Jul 25 Python
Python开发工具Pycharm的安装以及使用步骤总结
Jun 24 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 MYSQL简易交互式站点开发
2016/12/27 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
使用axios实现上传图片进度条功能
2017/12/21 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
pip 错误unused-command-line-argument-hard-error-in-future解决办法
2014/06/01 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python File readlines() 使用方法
2018/03/19 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
python的launcher用法知识点总结
2020/08/07 Python
python中最小二乘法详细讲解
2021/02/19 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
厨房管理计划书
2014/04/27 职场文书
英语邀请函范文
2015/02/02 职场文书
西柏坡导游词
2015/02/05 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
唱歌比赛拉拉队口号
2015/12/25 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书