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中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
Python中static相关知识小结
Jan 02 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python实现猜数字小游戏
Mar 24 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
Pytorch中.new()的作用详解
Feb 18 Python
python生成任意频率正弦波方式
Feb 25 Python
python读取xml文件方法解析
Aug 04 Python
利用python 读写csv文件
Sep 10 Python
Python和Bash结合在一起的方法
Nov 13 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 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伪静态页面函数附使用方法
2008/06/20 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
一个简单的php路由类
2016/05/29 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
Jquery index()方法 获取相应元素索引值
2012/10/12 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
python奇偶行分开存储实现代码
2018/03/19 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
python发送告警邮件脚本
2018/09/17 Python
python输出带颜色字体实例方法
2019/09/01 Python
python3中pip3安装出错,找不到SSL的解决方式
2019/12/12 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
增大python字体的方法步骤
2020/07/05 Python
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
蔻驰法国官网:COACH法国
2018/11/14 全球购物
汇科协同Java笔试题
2012/03/31 面试题
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
博士学位自我鉴定范文
2013/12/26 职场文书
竞选演讲稿范文
2013/12/28 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
年终工作总结范文2014
2014/11/27 职场文书
校车安全管理责任书
2015/05/11 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫