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类和继承用法实例
Jul 07 Python
Python正则表达式常用函数总结
Jun 24 Python
python实现黑客字幕雨效果
Jun 21 Python
Python 将Matrix、Dict保存到文件的方法
Oct 30 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Python多线程获取返回值代码实例
Feb 17 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
Mar 23 Python
python 画图 图例自由定义方式
Apr 17 Python
Python列表如何更新值
May 27 Python
Python的collections模块真的很好用
Mar 01 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设计模式之命令模式的应用详解
2013/05/21 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python批量创建指定名称的文件夹
2019/03/21 Python
python如何将多个PDF进行合并
2019/08/13 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
公司培训欢迎词
2014/01/10 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
初级党校心得体会
2014/09/11 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
结婚通知短信大全
2015/04/17 职场文书
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server