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 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
python实现NB-IoT模块远程控制
Jun 20 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
在python3中实现更新界面
Feb 21 Python
Python日志logging模块功能与用法详解
Apr 09 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
利用python制作拼图小游戏的全过程
Dec 04 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
Pandas自定义选项option设置
Jul 25 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下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
php调用shell的方法
2014/11/05 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Python操作csv文件实例详解
2017/07/31 Python
python学生信息管理系统(完整版)
2020/04/05 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Python实现手势识别
2020/10/21 Python
scrapy头部修改的方法详解
2020/12/06 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
Charles & Keith欧盟:新加坡时尚品牌
2019/08/01 全球购物
2015政治思想表现评语
2015/03/25 职场文书
法定授权委托证明书
2015/06/18 职场文书
给领导敬酒词
2015/08/12 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
如何使JavaScript休眠或等待
2021/04/27 Javascript