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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
用Python编写一个基于终端的实现翻译的脚本
Apr 24 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
在DigitalOcean的服务器上部署flaskblog应用
Dec 19 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
python实现手势识别的示例(入门)
Apr 15 Python
python 爬取小说并下载的示例
Dec 07 Python
提取视频中的音频 Python只需要三行代码!
May 10 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
php获得文件扩展名三法
2006/11/25 PHP
ADODB的数据库封包程序库
2006/12/31 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
2015/11/09 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Javascript 继承实现例子
2009/08/12 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
2016/06/13 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
2016/09/08 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
分析在Python中何种情况下需要使用断言
2015/04/01 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python如何求解两数的最大公约数
2018/09/27 Python
Python中关于浮点数的冷知识
2019/09/22 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
服装创业计划书范文
2014/02/05 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
年度考核个人总结
2015/03/06 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
离婚被告答辩状
2015/05/22 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书