1. 程式人生 > >3.2.4 Python讀取CSV檔案

3.2.4 Python讀取CSV檔案

CSV是一種通用的、相對簡單的檔案格式,在表格型別的資料中用途很廣泛,很多關係型資料庫都支援這種型別檔案的匯入匯出,並且Excel這種常用的資料表格也能和CSV檔案之間轉換。逗號分隔值(CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存表格資料(數字和文字)。我在D://test.csv檔案裡面隨便新增內容最簡單直接的方法,是用open()開啟:>>> with open("D://test.csv") as a: for line in a: print linename,age,addrzhangsan,18,beijinglisi,24,shanghaiwangwu,22,nanjingPython中還有一個CSV的標準庫,專門為csv檔案準備:>>> import csv>>> reader = csv.reader(open("D://test.csv"))>>> for line in reader: print line['name', 'age', 'addr']
['zhangsan', '18', 'beijing']['lisi', '24', 'shanghai']['wangwu', '22', 'nanjing']Pandas也可以操作csv檔案:>>> import pandas as pd>>> ma = pd.read_csv("D://test.csv")>>> ma name age addr0 zhangsan 18 beijing1 lisi 24 shanghai2 wangwu 22 nanjingPandas還可以這樣:>>>
pd.read_table("D://test.csv",sep=",") name age addr0 zhangsan 18 beijing1 lisi 24 shanghai2 wangwu 22 nanjingPandas用法還有很多可操作的:>>> ma.indexRangeIndex(start=0, stop=3, step=1)>>> ma.columnsIndex([u'name', u'age', u'addr'], dtype='object')>>> ma["name"][0]
'zhangsan'>>> ma[:1] name age addr0 zhangsan 18 beijing>>> ma[1:2] name age addr1 lisi 24 shanghai>>> ma["name"]0 zhangsan1 lisi2 wangwuName: name, dtype: object檢視Pandas其他讀取檔案的方法:>>> dir(pd)['Categorical', 'CategoricalIndex', 'DataFrame', 'DateOffset', 'DatetimeIndex', 'ExcelFile', 'ExcelWriter', 'Expr', 'Float64Index', ...雖然沒有類似read_csv()的方法,但是有ExcelFile類:>>> xls = pd.ExcelFile("D://test.xlsx")>>> xls.sheet_names[u'python', u'Sheet1']>>> sheetPython = xls.parse("python")>>> sheetPython name age addr0 zhangsan 18 beijing1 lisi 24 shanghai2 wangwu 22 nanjing不知道有什麼內建函式:dir(xls)檢視可能會報錯:如果報:ImportError: No module named openpyxl 安裝:pip install openpyxl如果報:ImportError: Install xlrd >= 0.9.0 for Excel support 安裝:pip install xlrd