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 相关文章推荐
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
python 简单的绘图工具turtle使用详解
Jun 21 Python
Python中的__slots__示例详解
Jul 06 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
Kmeans均值聚类算法原理以及Python如何实现
Sep 26 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中使用curl伪造IP的简单方法
2015/08/07 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP查询分页的实现代码
2017/06/09 PHP
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
比较新旧两个数组值得增加和删除的JS代码
2013/10/30 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python递归函数定义与用法示例
2017/06/02 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
临床医师专业个人自我评价范文
2013/11/07 职场文书
实习生单位鉴定意见
2013/12/04 职场文书
检举信的格式及范文
2014/04/04 职场文书
经济贸易系求职信
2014/08/04 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL
Python基础 括号()[]{}的详解
2021/11/07 Python
详解Vue slot插槽
2021/11/20 Vue.js
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
vue 把二维或多维数组转一维数组
2022/04/24 Vue.js