數據加載、存儲與文件格式
pandas提供了一些用于將表格型數據讀取為DataFrame對象的函數。其中read_csv和read_talbe用得最多
pandas中的解析函數:
函數 說明
read_csv 從文件、URL、文件型對象中加載帶分隔符的數據,默認分隔符為逗號
read_table 從文件、URL、文件型對象中加載帶分隔符的數據。默認分隔符為制表符("/t")
read_fwf 讀取定寬列格式數據(也就是說,沒有分隔符)
read_clipboard 讀取剪貼板中的數據,可以看做read_table的剪貼板版。在將網頁轉換為表格時很有用
下面介紹一下這些函數在將文本數據轉換為DataFrame時所用到的一些技術。這些函數的選項可以劃分為以下幾個大類:
(1)索引:將一個或多個列當做返回的DataFrame處理,以及是否從文件、用戶獲取列名
(2)類型推斷和數據轉換:包括用戶定義值的轉換、缺失值標記列表等。(類型推斷是這些函數中最重要的功能之一)
(3)日期解析:包括組合功能,比如將分散在多個列中的日期時間信息組合成結果中的單個列。
(4)迭代:支持對大文件進行逐塊迭代。
(5)不規整數據問題:跳過一些行、頁腳、注釋或其他一些不重要的東西(比如成千上萬個逗號隔開的數值數據)
1. 讀寫文本格式的數據:
(1)由于該文件以逗號分隔,所以我們可以使用read_csv將其讀入一個DataFrame:
import pandas as pdimport numpy as np
#'ex1.csv'的內容如下:# a,b,c,d,message# 1,2,3,4,hello# 5,6,7,8,world# 9,10,11,12,foodf=pd.read_csv('ex1.csv')print df#輸出結果如下:# a b c d message# 0 1 2 3 4 hello# 1 5 6 7 8 world# 2 9 10 11 12 foo(2)我們也可以用read_table,只不過需要指定分隔符而己:
df=pd.read_table('ex1.csv',sep=',')print df#輸出結果如下:# a b c d message# 0 1 2 3 4 hello# 1 5 6 7 8 world# 2 9 10 11 12 foo(3)讀入文件可以讓pandas為其分配默認的列名,也可以自己定義列名:
print pd.read_csv('ex1.csv',header=None)#輸出結果如下:# 0 1 2 3 4# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 fooprint pd.read_csv('ex1.csv',names=['a','b','c','d','message'])#輸出結果如下:# a b c d message# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 foo(4)假如希望將message列做成DataFrame的索引,也可以明確表示要將該列放到索引4的位置上,也可以通過index_col參數指定"message"
names=['a','b','c','d','message']print pd.read_csv('ex1.csv',names=names)#輸出結果如下:# a b c d message# 0 a b c d message# 1 1 2 3 4 hello# 2 5 6 7 8 world# 3 9 10 11 12 fooprint pd.read_csv('ex1.csv',names=names,index_col='message')#輸出結果如下:# a b c d# message# message a b c d# hello 1 2 3 4# world 5 6 7 8# foo 9 10 11 12
新聞熱點
疑難解答