Pandas I/O API是一套像pd.read_csv()
同樣返回Pandas
對象的頂級讀取器函數。python
讀取文本文件(或平面文件)的兩個主要功能是read_csv()
和read_table()
。它們都使用相同的解析代碼來智能地將表格數據轉換爲DataFrame
對象 -shell
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None)
形式2-函數
pandas.read_csv(filepath_or_buffer, sep='\t', delimiter=None, header='infer', names=None, index_col=None, usecols=None)
如下是csv文件數據的內容 -spa
S.No,Name,Age,City,Salary 1,Tom,28,Toronto,20000 2,Lee,32,HongKong,3000 3,Steven,43,Bay Area,8300 4,Ram,38,Hyderabad,3900
將這些數據保存爲temp.csv
並對其進行操做。code
S.No,Name,Age,City,Salary 1,Tom,28,Toronto,20000 2,Lee,32,HongKong,3000 3,Steven,43,Bay Area,8300 4,Ram,38,Hyderabad,3900
read.csv
從csv文件中讀取數據並建立一個DataFrame
對象。對象
import pandas as pd df=pd.read_csv("temp.csv") print (df)
輸出結果:blog
S.No Name Age City Salary 0 1 Tom 28 Toronto 20000 1 2 Lee 32 HongKong 3000 2 3 Steven 43 Bay Area 8300 3 4 Ram 38 Hyderabad 3900
自定義索引索引
能夠指定csv文件中的一列來使用index_col
定製索引。ip
import pandas as pd df=pd.read_csv("temp.csv",index_col=['S.No']) print (df)
輸出結果:pandas
Name Age City Salary S.No 1 Tom 28 Toronto 20000 2 Lee 32 HongKong 3000 3 Steven 43 Bay Area 8300 4 Ram 38 Hyderabad 3900
轉換器dtype
的列能夠做爲字典傳遞。
import pandas as pd import numpy as np df = pd.read_csv("temp.csv", dtype={'Salary': np.float64}) print (df.dtypes)
輸出結果:
S.No int64 Name object Age int64 City object Salary float64 dtype: object
默認狀況下,Salary列的dtype
是int
,但結果顯示爲float
,由於咱們明確地轉換了類型。
所以,數據看起來像浮點數 -
S.No Name Age City Salary 0 1 Tom 28 Toronto 20000.0 1 2 Lee 32 HongKong 3000.0 2 3 Steven 43 Bay Area 8300.0 3 4 Ram 38 Hyderabad 3900.0
header_names
使用names
參數指定標題的名稱。
import pandas as pd import numpy as np df=pd.read_csv("temp.csv", names=['a', 'b', 'c','d','e']) print (df)
輸出結果:
a b c d e 0 S.No Name Age City Salary 1 1 Tom 28 Toronto 20000 2 2 Lee 32 HongKong 3000 3 3 Steven 43 Bay Area 8300 4 4 Ram 38 Hyderabad 3900
觀察能夠看到,標題名稱附加了自定義名稱,但文件中的標題尚未被消除。 如今,使用header
參數來刪除它。
若是標題不是第一行,則將行號傳遞給標題。這將跳過前面的行。
import pandas as pd import numpy as np df=pd.read_csv("temp.csv",names=['a','b','c','d','e'],header=0) print (df)
輸出結果:
a b c d e 0 1 Tom 28 Toronto 20000 1 2 Lee 32 HongKong 3000 2 3 Steven 43 Bay Area 8300 3 4 Ram 38 Hyderabad 3900
skiprows
skiprows
跳過指定的行數。參考如下示例代碼 -
import pandas as pd import numpy as np df=pd.read_csv("temp.csv", skiprows=2) print (df)
輸出結果:
2 Lee 32 HongKong 3000 0 3 Steven 43 Bay Area 8300 1 4 Ram 38 Hyderabad 3900