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 中的列表解析和生成表达式
Mar 10 Python
Python类属性的延迟计算
Oct 22 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
Mar 23 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 Python
python数字转对应中文的方法总结
Aug 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
PHP 高手之路(三)
2006/10/09 PHP
php自动跳转中英文页面
2008/07/29 PHP
动态加载js的几种方法
2006/10/23 Javascript
JavaScript 事件参考手册
2008/12/24 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
smartcrop.js智能图片裁剪库
2015/10/14 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
vuex进阶知识点巩固
2018/05/20 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
Python实现简单拆分PDF文件的方法
2015/07/30 Python
单利模式及python实现方式详解
2018/03/20 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
pycharm修改file type方式
2019/11/19 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
python interpolate插值实例
2020/07/06 Python
简述python&pytorch 随机种子的实现
2020/10/07 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
2014年情人节活动方案
2014/02/16 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
学校与家长安全责任书
2014/07/23 职场文书
Mysql Show Profile
2021/04/05 MySQL
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS