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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python 字典(Dictionary)操作详解
Mar 11 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
python 容器总结整理
Apr 04 Python
快速了解Python中的装饰器
Jan 11 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python实现数字炸弹游戏
Jul 17 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 fckeditor 调用的函数
2009/06/21 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
JS无限树状列表实现代码
2011/01/11 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
python中实现定制类的特殊方法总结
2014/09/28 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
python如何使用socketserver模块实现并发聊天
2019/12/14 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
应届生污水处理求职信
2013/11/06 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
高校教师个人总结
2015/02/10 职场文书
小学思品教学反思
2016/02/20 职场文书
Python中字符串对象语法分享
2022/02/24 Python
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle