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 EOL while scanning string literal问题解决方法
Sep 18 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
详解Python使用simplejson模块解析JSON的方法
Mar 24 Python
Python自定义函数定义,参数,调用代码解析
Dec 27 Python
Python入门必须知道的11个知识点
Mar 21 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
关于python爬虫应用urllib库作用分析
Sep 04 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
15种PHP Encoder的比较
2007/03/06 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
Angularjs上传图片实例详解
2017/08/06 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
python实现远程控制电脑
2019/05/23 Python
pycharm新建一个python工程步骤
2019/07/16 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
python软件都是免费的吗
2020/06/18 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
美丽乡村建设实施方案
2014/03/23 职场文书
竞选部长演讲稿
2014/04/26 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
政风行风整改报告
2014/11/06 职场文书
天坛导游词
2015/02/02 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
python实现简单的聊天小程序
2021/07/07 Python