文章目录

  • 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数据透视表

九、表的合并、连接、拼接(数据聚合基础)


  1. Pandas支持的文件与数据类型: ↩︎ ↩︎

Pandas简明教程:三、Pandas文件读写相关推荐

  1. [静态时序分析简明教程(三)]备战秋招,如何看懂一个陌生的timing report

    备战秋招,如何看懂一个陌生的timing report 一.写在前面 1.1 快速导航链接· 二.Timing Report 2.1 起始点与终止点 2.2 路径时钟域的归属 2.2 建立时间检查与保 ...

  2. Pandas简明教程:九、表的合并、连接、拼接(数据聚合基础)

    真实场景中常会遇到多种信息放在不同的表里的情况,此时我们就需要将这些表格的信息整合到一起.这种操作可以极大地减轻我们手动粘数据的工作,从而达到事半功倍的效果. 由于本篇要举的例子较多,因此直接采用官网 ...

  3. Pandas简明教程:八、Pandas数据透视表

    透视表(pivot)是由微软发明的一个概念,1993年微软注册了PivotTable这一商标,而他们又在2020年正式撤销了注册. 关于透视表的话题随便搜搜就是一大堆,而有些地方可能都吹得很神了.透视 ...

  4. Pandas简明教程-适用于竞赛、研究以及办公自动化

    数据的读.写.查.改是数据分析的基础,也是竞赛.研究以及办公自动化类项目的常用操作.为了让大家能以更简单的方法来操作数据,我们选择Pandas作为处理数据的工具,希望通过这个系列的教程能够帮助大家节省 ...

  5. Pandas简明教程:五、Pandas简单统计操作及通用方式

    文章目录 1.DataFrame的方法使用举例 2.DataFrame的方法调用通用方式 3.DataFrame直接调用其它方法 本系列教程教程完整目录: 前面已经提到,Pandas的DataFram ...

  6. Pandas简明教程:七、Pandas缺失数据的处理(数据清洗基础)

    文章目录 1.缺失数据的类型 2.定位缺失数据 3.修改定位数据 4.批量修改缺失数据 5.数据修复的利器--插值法(`interpolate`) 本系列教程教程完整目录: 数据清洗的内容其实很丰富, ...

  7. Pandas简明教程:六、Pandas条件查询

    文章目录 1.基本方法 2.高级查询 3. 可用于修改内容的`where`方法 4.条件检索进阶:快速的查询方法`query` 5.其它检索方法简述 本系列教程教程完整目录: 目前大家公认的一个说法是 ...

  8. Pandas简明教程:四、Pandas数据索引方式

    文章目录 1.以类似`dict`的方式访问 2.以属性方式访问数据 3.访问行(slicing) 4.用`loc`方法访问不同行列 5.用`iloc`方法直接访问行列 6.其它方式 本系列教程教程完整 ...

  9. Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series

    文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...

最新文章

  1. c51单片机的语言,51单片机,stm32,arduino都是用什么语言进行编程的?
  2. 机器学习(十八)——关联规则挖掘
  3. 11月16日站立会议
  4. vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)
  5. linux恢复桌面,ubuntu恢复unity桌面
  6. Myeclipse下使用Maven搭建spring boot项目(第二篇)
  7. 数据集转josion
  8. 入选 Gartner 魔力象限,剖析华为云 GaussDB 数据库演进之路
  9. 解决VMware/virtualbox虚拟机下ghost安装XP后无法从硬盘启动的问题
  10. LoggingFilter Session 以及Async
  11. 十大经典算法图解(详细版)
  12. Cool Edit Pro软件介绍
  13. steam显示不能连接网络连接服务器,steam请检查网络连接
  14. 淘宝双十一自动做任务方案
  15. 关于大地测量领域常用的角度知识汇总(方位角,竖直角)
  16. 企业视频直播平台有哪些呢
  17. 无机物及有机物储氢材料/MNi4.8Sn0.2(M=La,Nd)合金粒子负载纳米碳管复合储氢材料/LaNi4.8Sn0.2/CNTs纳米碳管复合储氢材料
  18. 苹果手机(iPhone)添加outlook邮箱设置
  19. 新松机器人BG总裁高峰_新松机器人总裁曲道奎博士出席高工机器人产业高峰论坛...
  20. 拓嘉辰丰电商:多多国际入驻,需要什么资质条件

热门文章

  1. mysql 密码加密windows_Windows下mysql数据库的安装及8.0以上版本设置密码的命令(简易教学)...
  2. python_redis模块
  3. 201521123108《Java程序设计》第14周学习总结
  4. [物理学与PDEs]第4章习题3 一维理想反应流体力学方程组的数学结构
  5. suffix tree
  6. Flash/Flex学习笔记(53):利用FMS快速创建一个文本聊天室
  7. 控制程序仅执行一次 php,PHP流程控制(1)
  8. 解析:一种合适的数据中心建造方式有多重要?
  9. 家庭安全摄像头:应选择本地还是云端存储?
  10. 【教程】HTML5+JavaScript编写flappy bird