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我們就可以寫一段或者多段程序,將表格和字段等信息作為參數,在應對同一類問題時只需要修改參數即可。那么,這樣就可以實現一種簡單的辦公自動化功能了。
當然,關于這個話題,后面有時間我們再詳細介紹。
| 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文件读写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pandas简明教程:四、Pandas数
- 下一篇: Pandas简明教程:六、Pandas条