Pandas简明教程:三、Pandas文件读写
文章目录
- 1、CSV文件
- 2、Excel的读写
- 3、HTML文件的读写
- 4、其它文件(数据)类型的简单说明
- 5、办公自动化问题简析
- 本系列教程教程完整目录:
Pandas支持了非常丰富的文件类型(见文末汇总表) 1,这种操作方式极大简化了我们的文件读写,也是我们进行比赛、研究尤其是办公自动化最为直接的基础。可以说从这里开始,我们就要真正享受Pandas带来的便利了。
1、CSV文件
这里我们将前面用到的张三团伙的数据表存到一个csv文件中。
df = pd.read_csv(r"C:\Users\Administrator\Desktop\test.csv")dfUnnamed: 0 月份 姓名 性别 应发工资 实发工资 职位
0 0 1 张三 男 2000 1500 主犯
1 1 2 张三 男 2000 1000 主犯
2 2 3 张三 女 2000 15000 主犯
3 3 4 张三 女 2000 1500 主犯
4 4 5 张三 女 2000 1500 主犯
5 5 2 李四 男 1800 1300 从犯
6 6 3 李四 男 1800 1300 从犯
7 7 4 李四 男 1800 1300 从犯
8 8 5 李四 男 1800 1300 从犯
9 9 1 王五 女 1800 1300 龙套
10 10 2 王五 女 1800 1300 龙套
11 11 3 王五 女 1800 1300 龙套
12 12 4 王五 女 1800 1300 龙套
注:这里默认的第一列index由于在文件中是一列,因此默认读取时它是数据而不是Index.
另外,插播一个小技巧,在windows系统中如果要想快速获取文件的完整绝对路径可以这样操作:Alt+右键,弹出菜单栏里会有一个“复制为路径”,此时完整的绝对路径就在剪切板中,直接粘贴即可。
相反,如果想将上述数据存到一个csv
文件中:
df = pd.to_csv(r"C:\Users\Administrator\Desktop\test.csv")
另外,如果目标文件是txt
,读写方法实际上是一样的:
df = pd.read_csv(r"C:\Users\Administrator\Desktop\test.txt")df = pd.to_csv(r"C:\Users\Administrator\Desktop\test.csv")
由此可见,Pandas读、写数据的方法不外乎read_
+ 文件类型名,和to_
文件类型名,其它的文件均类似1。
2、Excel的读写
上面已经说明了Pandas的读写文件函数命名的一般规则,这里简单再介绍一些不太一样的文件类型。首先是我们最常用的Excel:
df = pd.read_excel(r"C:\Users\Administrator\Desktop\test.txt",sheet_name = 'Sheet1')df = pd.to_csv(r"C:\Users\Administrator\Desktop\test.csv",sheet_name = 'Sheet1')
这里需要强调1点: Excel文件本身并不是一个表格,而是一个可以存放多个表格的容器。因此在读写时需要指定Sheet
的名称。如果未指定则默认为Sheet1
或者第一个Sheet
。
3、HTML文件的读写
这里我们直接利用官网的例子:
url = 'https://www.fdic.gov/bank/individual/failed/banklist.html'dfs = pd.read_html(url)dfs[ Bank Name City ST CERT Acquiring Institution Closing Date0 The First State Bank Barboursville WV 14361 MVB Bank, Inc. April 3, 20201 Ericson State Bank Ericson NE 18265 Farmers and Merchants Bank February 14, 20202 City National Bank of New Jersey Newark NJ 21111 Industrial Bank November 1, 20193 Resolute Bank Maumee OH 58317 Buckeye State Bank October 25, 20194 Louisa Community Bank Louisa KY 58112 Kentucky Farmers Bank Corporation October 25, 2019.. ... ... .. ... ... ...556 Superior Bank, FSB Hinsdale IL 32646 Superior Federal, FSB July 27, 2001557 Malta National Bank Malta OH 6629 North Valley Bank May 3, 2001558 First Alliance Bank & Trust Co. Manchester NH 34264 Southern New Hampshire Bank & Trust February 2, 2001559 National State Bank of Metropolis Metropolis IL 3815 Banterra Bank of Marion December 14, 2000560 Bank of Honolulu Honolulu HI 21029 Bank of the Orient October 13, 2000[561 rows x 6 columns]]
注意:这里看起来很像是一个爬虫了,但对HTML
文件的读取是有先决条件的。打开该链接简单分析可以看到,链接中的表格是直接存在标签为table
的框架里的:
<table id="table" class="tablesorter"><colgroup><col class="col1"><col class="col2"><col class="col3"><col class="col4"><col class="col5">
那我们试试其它的网站行不行呢?
url = r"https://blog.csdn.net/cauchy7203"
dfs = pd.read_html(url)
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-51-fafba0f26e7e> in <module>
----> 1 dfs = pd.read_html(url)
直接报错!
再看看CSDN官网主页:
url = r"https://www.csdn.net/"
dfs = pd.read_html(url)
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-53-fafba0f26e7e> in <module>
----> 1 dfs = pd.read_html(url)
结果完全一样。由此可见,想要读取html
文件的前提是它的内容本身就高度格式化并且具有明显的类似table
的标签才能读取。具体的一些说明可以在官网中查到,不过由此也可以看出除非一些高度结构化的网页,一般还是不要寄希望于这种方式。
另外,在使用这个功能之前需要安装lxml
,可能还会用到BeautifulSoup4
,可自行下载安装。
4、其它文件(数据)类型的简单说明
json
: 最常用的数据类型之一,结构灵活丰富。读写自然是刚刚提到的read,to
方法就好。clipboard
: 这个功能也挺好用,可以直接读、写剪贴板中的数据。pickle
等二进制文件:二进制文件有个最大的好处是它可以保存任何形式的数据,因为计算机软件系统的本质就是二进制。明白这一点就可以做出更高级的操作。举几个简单的例子:- 我有一个表,但其中某一列中,每个元素都是数组,而这会我想把数据存起来
- 我有一个表,其中某一列每个元素都是一个具体的
object
,比如竞赛时我们训练好的带参数的模型
类似的情况还有很多,都可以用这种方式来解决。
5、办公自动化问题简析
回到第一篇教程中我讲的故事,我们考虑几种简单的情景:
- 假设高工的总表已经做好,现在需要将它按行、列拆分开存到不同的文件里
- 假设他的表很多,现在需要将所有的表格中的数据提取出来单独做简单统计(比如求和、平均等)
那么此时可想而知,如果用Pandas我们就可以写一段或者多段程序,将表格和字段等信息作为参数,在应对同一类问题时只需要修改参数即可。那么,这样就可以实现一种简单的办公自动化功能了。
当然,关于这个话题,后面有时间我们再详细介绍。
Format Type | Data Description | Reader | Writer |
---|---|---|---|
text | CSV | read_csv | to_csv |
text | Fixed-Width Text File | read_fwf | |
text | JSON | read_json | to_json |
text | HTML | read_html | to_html |
text | Local clipboard | read_clipboard | to_clipboard |
MS Excel | read_excel | to_excel | |
binary | OpenDocument | read_excel | |
binary | HDF5 Format | read_hdf | to_hdf |
binary | Feather Format | read_feather | to_feather |
binary | Parquet Format | read_parquet | to_parquet |
binary | ORC Format | read_orc | |
binary | Msgpack | read_msgpack | to_msgpack |
binary | Stata | read_stata | to_stata |
binary | SAS | read_sas | |
binary | SPSS | read_spss | |
binary | Python Pickle Format | read_pickle | to_pickle |
SQL | SQL | read_sql | to_sql |
SQL | Google BigQuery | read_gbq | to_gbq |
本系列教程教程完整目录:
一、Pandas简介与安装
二、Pandas基本数据结构-DataFrame与Series
三、Pandas文件读写
四、Pandas数据索引方式
五、Pandas简单统计操作及通用方式
六、Pandas条件查询
七、Pandas缺失数据的处理(数据清洗基础)
八、Pandas数据透视表
九、表的合并、连接、拼接(数据聚合基础)
Pandas支持的文件与数据类型: ↩︎ ↩︎
Pandas简明教程:三、Pandas文件读写相关推荐
- [静态时序分析简明教程(三)]备战秋招,如何看懂一个陌生的timing report
备战秋招,如何看懂一个陌生的timing report 一.写在前面 1.1 快速导航链接· 二.Timing Report 2.1 起始点与终止点 2.2 路径时钟域的归属 2.2 建立时间检查与保 ...
- Pandas简明教程:九、表的合并、连接、拼接(数据聚合基础)
真实场景中常会遇到多种信息放在不同的表里的情况,此时我们就需要将这些表格的信息整合到一起.这种操作可以极大地减轻我们手动粘数据的工作,从而达到事半功倍的效果. 由于本篇要举的例子较多,因此直接采用官网 ...
- Pandas简明教程:八、Pandas数据透视表
透视表(pivot)是由微软发明的一个概念,1993年微软注册了PivotTable这一商标,而他们又在2020年正式撤销了注册. 关于透视表的话题随便搜搜就是一大堆,而有些地方可能都吹得很神了.透视 ...
- Pandas简明教程-适用于竞赛、研究以及办公自动化
数据的读.写.查.改是数据分析的基础,也是竞赛.研究以及办公自动化类项目的常用操作.为了让大家能以更简单的方法来操作数据,我们选择Pandas作为处理数据的工具,希望通过这个系列的教程能够帮助大家节省 ...
- Pandas简明教程:五、Pandas简单统计操作及通用方式
文章目录 1.DataFrame的方法使用举例 2.DataFrame的方法调用通用方式 3.DataFrame直接调用其它方法 本系列教程教程完整目录: 前面已经提到,Pandas的DataFram ...
- Pandas简明教程:七、Pandas缺失数据的处理(数据清洗基础)
文章目录 1.缺失数据的类型 2.定位缺失数据 3.修改定位数据 4.批量修改缺失数据 5.数据修复的利器--插值法(`interpolate`) 本系列教程教程完整目录: 数据清洗的内容其实很丰富, ...
- Pandas简明教程:六、Pandas条件查询
文章目录 1.基本方法 2.高级查询 3. 可用于修改内容的`where`方法 4.条件检索进阶:快速的查询方法`query` 5.其它检索方法简述 本系列教程教程完整目录: 目前大家公认的一个说法是 ...
- Pandas简明教程:四、Pandas数据索引方式
文章目录 1.以类似`dict`的方式访问 2.以属性方式访问数据 3.访问行(slicing) 4.用`loc`方法访问不同行列 5.用`iloc`方法直接访问行列 6.其它方式 本系列教程教程完整 ...
- Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series
文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...
最新文章
- c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?
- 机器学习(十八)——关联规则挖掘
- 11月16日站立会议
- vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
- linux恢复桌面,ubuntu恢复unity桌面
- Myeclipse下使用Maven搭建spring boot项目(第二篇)
- 数据集转josion
- 入选 Gartner 魔力象限,剖析华为云 GaussDB 数据库演进之路
- 解决VMware/virtualbox虚拟机下ghost安装XP后无法从硬盘启动的问题
- LoggingFilter Session 以及Async
- 十大经典算法图解(详细版)
- Cool Edit Pro软件介绍
- steam显示不能连接网络连接服务器,steam请检查网络连接
- 淘宝双十一自动做任务方案
- 关于大地测量领域常用的角度知识汇总(方位角,竖直角)
- 企业视频直播平台有哪些呢
- 无机物及有机物储氢材料/MNi4.8Sn0.2(M=La,Nd)合金粒子负载纳米碳管复合储氢材料/LaNi4.8Sn0.2/CNTs纳米碳管复合储氢材料
- 苹果手机(iPhone)添加outlook邮箱设置
- 新松机器人BG总裁高峰_新松机器人总裁曲道奎博士出席高工机器人产业高峰论坛...
- 拓嘉辰丰电商:多多国际入驻,需要什么资质条件
热门文章
- mysql 密码加密windows_Windows下mysql数据库的安装及8.0以上版本设置密码的命令(简易教学)...
- python_redis模块
- 201521123108《Java程序设计》第14周学习总结
- [物理学与PDEs]第4章习题3 一维理想反应流体力学方程组的数学结构
- suffix tree
- Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室
- 控制程序仅执行一次 php,PHP流程控制(1)
- 解析:一种合适的数据中心建造方式有多重要?
- 家庭安全摄像头:应选择本地还是云端存储?
- 【教程】HTML5+JavaScript编写flappy bird