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使用Tkinter显示网络图片的方法
Apr 24 Python
python生成器generator用法实例分析
Jun 04 Python
python微信跳一跳系列之自动计算跳一跳距离
Feb 26 Python
对python 命令的-u参数详解
Dec 03 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
python函数中将变量名转换成字符串实例
May 11 Python
python 对象真假值的实例(哪些视为False)
Dec 11 Python
python中的插入排序的简单用法
Jan 19 Python
python字典进行运算原理及实例分享
Aug 02 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/04/09 PHP
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
js函数排序的实例代码
2013/07/01 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
2013/07/04 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python探索之pLSA实现代码
2017/10/25 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
python实现简易淘宝购物
2019/11/22 Python
python多进程重复加载的解决方式
2019/12/13 Python
TensorFlow实现checkpoint文件转换为pb文件
2020/02/10 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
python实现数字炸弹游戏
2020/07/17 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
Corelle官方网站:购买康宁餐具
2016/11/02 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
学习十八大报告感言
2014/02/04 职场文书
消防应急演练方案
2014/02/12 职场文书
2014国培学习感言
2014/03/05 职场文书
中国梦团日活动总结
2014/07/07 职场文书
妇女工作先进事迹
2014/08/17 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
工会文体活动总结
2015/05/07 职场文书