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中type的构造函数参数含义说明
Jun 21 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
Python3 max()函数基础用法
Feb 19 Python
python多线程扫描端口(线程池)
Sep 04 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python如何实现的二分查找算法
May 27 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 Python
Python pymysql模块安装并操作过程解析
Oct 13 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 常用函数库和一些实用小技巧
2009/01/01 PHP
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
原生js实现购物车
2020/09/23 Javascript
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
Python 正则表达式的高级用法
2016/12/04 Python
Python之文字转图片方法
2018/05/10 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
EJB与JAVA BEAN的区别
2016/08/29 面试题
大学生简单自荐信
2013/11/10 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP