这里我们将前面用到的张三团伙的数据表存到一个csv文件中。
df = pd.read_csv(r"C:\Users\Administrator\Desktop\test.csv")
df
Unnamed: 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。
上面已经说明了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
。
这里我们直接利用官网的例子:
url = 'https://www.fdic.gov/bank/individual/failed/banklist.html'
dfs = pd.read_html(url)
dfs
[ Bank Name City ST CERT Acquiring Institution Closing Date
0 The First State Bank Barboursville WV 14361 MVB Bank, Inc. April 3, 2020
1 Ericson State Bank Ericson NE 18265 Farmers and Merchants Bank February 14, 2020
2 City National Bank of New Jersey Newark NJ 21111 Industrial Bank November 1, 2019
3 Resolute Bank Maumee OH 58317 Buckeye State Bank October 25, 2019
4 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, 2001
557 Malta National Bank Malta OH 6629 North Valley Bank May 3, 2001
558 First Alliance Bank & Trust Co. Manchester NH 34264 Southern New Hampshire Bank & Trust February 2, 2001
559 National State Bank of Metropolis Metropolis IL 3815 Banterra Bank of Marion December 14, 2000
560 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
,可自行下载安装。
json
: 最常用的数据类型之一,结构灵活丰富。读写自然是刚刚提到的read,to
方法就好。
clipboard
: 这个功能也挺好用,可以直接读、写剪贴板中的数据。
pickle
等二进制文件:二进制文件有个最大的好处是它可以保存任何形式的数据,因为计算机软件系统的本质就是二进制。明白这一点就可以做出更高级的操作。举几个简单的例子:
object
,比如竞赛时我们训练好的带参数的模型类似的情况还有很多,都可以用这种方式来解决。
回到第一篇教程中我讲的故事,我们考虑几种简单的情景:
那么此时可想而知,如果用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支持的文件与数据类型: ↩︎ ↩︎