python pandas 解析(读取、写入)CSV 文件的操作方法


Posted in Python onDecember 24, 2022

1. 使用 pandas 读取 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

将 CSV 文件读入 pandas DataFrame 快速而直接:

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

就这样简单:仅仅三行代码,而且其中只有一行真正有用。pandas.read_csv() 打开、分析并读取提供的 CSV 文件,并将数据存储在 DataFrame 中,打印 DataFrame 会产生以下输出:

python pandas 解析(读取、写入)CSV 文件的操作方法

以下是值得注意的几点:

首先,pandas 识别到 CSV 的第一行包含列名,并自动使用它们。
但是,pandas 也在 DataFrame 中使用从零开始的整数索引,那是因为没有告诉它我们的索引应该是什么。
此外,如果查看列的数据类型,会看到 pandas 已将 Salary and Sick Days 剩余列正确转换为数字,但 Hire Date 列仍然是 String,这在交互模式下很容易确认:

python pandas 解析(读取、写入)CSV 文件的操作方法

让我们一次解决这些问题,要使用其他列作为 DataFrame 的索引,添加 index_col 可选参数:

df2 = pandas.read_csv('hrdata.csv', index_col='Name')
print(df2)

现在,Name 字段就是我们的 DataFrame 索引:

接下来,让我们修复「Hire Date」字段的数据类型。可以使用 parse_dates 可选参数强制pandas 将数据作为日期读取,该参数定义为要作为日期处理的列名列表:

df3 = pandas.read_csv('hrdata.csv', index_col='Name', parse_dates=['Hire Date'])
print(df3)

注意输出的差异:

python pandas 解析(读取、写入)CSV 文件的操作方法

现在日期格式正确,可以在交互模式下轻松确认:

python pandas 解析(读取、写入)CSV 文件的操作方法

如果 CSV 文件的第一行中没有列名,则可以使用 names 可选参数来提供列名的列表。 如果要覆盖第一行中提供的列名,也可以使用此选项。 在这种情况下,还必须使用header = 0可选参数告诉 pandas.read_csv()忽略现有列名:

df4 = pandas.read_csv('hrdata.csv', 
            index_col='Employee', 
            parse_dates=['Hired'], 
            header=0, 
            names=['Employee', 'Hired','Salary', 'Sick Days'])
print(df4)

请注意,由于列名称已更改,因此还必须更改index_col和parse_dates可选参数中指定的列,现在这会产生以下输出:

python pandas 解析(读取、写入)CSV 文件的操作方法

2. 使用 pandas 写入 CSV 文件

当然,如果无法将数据从 pandas 中输出,那 pandas 可能没有多大好处。将 DataFrame 写入CSV 文件就像读取一个文件一样简单。下面让我们将带有新列名称的数据写入新的 CSV 文件:

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

此代码与上述读取代码之间的唯一区别是 print(df) 替换为 df.to_csv(),新的 CSV 文件如下所示:

python pandas 解析(读取、写入)CSV 文件的操作方法

参考此文章连接

到此这篇关于python pandas 解析(读取、写入) CSV 文件的文章就介绍到这了,更多相关python pandas 解析CSV 文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
深入解析Python中函数的参数与作用域
Mar 20 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python数据分析数据标准化及离散化详解
Feb 26 Python
对Python中数组的几种使用方法总结
Jun 28 Python
Python中字符串与编码示例代码
May 20 Python
学习Django知识点分享
Sep 11 Python
PyCharm更改字体和界面样式的方法步骤
Sep 27 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 #Python
python 使用pandas读取csv文件的方法
Dec 24 #Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 #Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 #Python
Python中np.random.randint()参数详解及用法实例
Sep 23 #Python
Python中tqdm的使用和例子
Sep 23 #Python
python 镜像环境搭建总结
Sep 23 #Python
You might like
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
vue获取验证码倒计时组件
2019/08/26 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
关于python多重赋值的小问题
2019/04/17 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
酒店拾金不昧表扬信
2014/01/18 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
《钱学森》听课反思
2014/03/01 职场文书
个人授权委托书模板
2014/09/14 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
中班下学期个人总结
2015/02/12 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
运动会通讯稿100字
2015/07/20 职场文书
《法国号》教学反思
2016/02/22 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL