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中处理日期和时间的基本知识点整理汇总
May 22 Python
python获取一组数据里最大值max函数用法实例
May 26 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
python学习必备知识汇总
Sep 08 Python
使用tensorflow实现AlexNet
Nov 20 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
python利用百度AI实现文字识别功能
Nov 27 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
Python socket处理client连接过程解析
Mar 18 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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代码优化的53个细节
2014/03/03 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
iOS10推送通知开发教程
2016/09/19 PHP
html下载本地
2006/06/19 Javascript
用javascript操作xml
2006/11/04 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
JavaScript SHA1加密算法实现详细代码
2016/10/06 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
初学Python函数的笔记整理
2015/04/07 Python
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
利用python画出折线图
2018/07/26 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
为什么Python中没有"a++"这种写法
2018/11/27 Python
python实现控制台打印的方法
2019/01/12 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python上下文管理器全实例详解
2019/11/12 Python
Python如何操作docker redis过程解析
2020/08/10 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
《再见了,亲人》教学反思
2014/02/26 职场文书
战略合作协议书范本
2014/04/18 职场文书
北京英文导游词
2015/02/12 职场文书
公司员工体检通知
2015/04/21 职场文书
工资证明格式模板
2015/06/12 职场文书
教师远程研修感悟
2015/11/18 职场文书