Python可通過內(nèi)置csv模塊或第三方庫(kù)pandas讀取CSV文件。使用csv模塊時(shí),需用open()打開文件并指定編碼,再通過csv.reader逐行解析。以下方法均可用于讀取CSV文件的數(shù)據(jù),并且使用不同的庫(kù)/方法方式進(jìn)行處理。根據(jù)具體的需求和使用場(chǎng)景,可以選擇最適合的方法來讀取和處理CSV文件數(shù)據(jù)。
一、Python讀取CSV的函數(shù)
Python內(nèi)置csv模塊和第三方庫(kù)pandas均可讀取CSV文件,以下是兩種主流方法:
使用csv模塊(標(biāo)準(zhǔn)庫(kù))
pythonimport csvwith open('data.csv', mode='r', encoding='utf-8') as file:reader = csv.reader(file) # 或使用csv.DictReader讀取為字典for row in reader:print(row) # 每行是一個(gè)列表
參數(shù)說明:
?。洌澹欤椋恚椋簦澹?',':指定分隔符。
quotechar='"':處理字段中的引號(hào)。
使用pandas
pythonimport pandas as pddf = pd.read_csv('data.csv', encoding='utf-8', header=0) # header指定列名行print(df.head()) # 顯示前5行
常用參數(shù):
sep=',':分隔符。
usecols=[0, 2]:選擇特定列。
na_values=['NA', '']:指定缺失值標(biāo)識(shí)。

二、Python讀取CSV的注意事項(xiàng)
編碼問題
明確文件編碼(如utf-8、gbk),否則中文可能亂碼??赏ㄟ^chardet庫(kù)檢測(cè)編碼:
pythonimport chardetwith open('data.csv', 'rb') as f:print(chardet.detect(f.read()))
大文件處理
大文件建議分塊讀?。?/p>
pythonfor chunk in pd.read_csv('large.csv', chunksize=10000):process(chunk) # 每次處理1萬行
數(shù)據(jù)清洗
跳過標(biāo)題行:pd.read_csv
處理缺失值:df.fillna(0)或df.dropna()
性能優(yōu)化
避免逐行讀取,優(yōu)先使用pandas或csv.DictReader批量處理。
指定列類型減少內(nèi)存占用。
三、Python讀取CSV的常見錯(cuò)誤處理
文件路徑錯(cuò)誤:使用絕對(duì)路徑或os.path拼接路徑:
pythonimport ospath = os.path.join
分隔符不匹配:檢查文件實(shí)際分隔符(如;或|)。
內(nèi)存不足:大文件用chunksize或數(shù)據(jù)庫(kù)替代。
在Python中讀取CSV文件,有幾種常見的方法,其中使用Python標(biāo)準(zhǔn)庫(kù)中的`csv`模塊是最基本的方法之一。簡(jiǎn)單任務(wù)用csv模塊,數(shù)據(jù)分析優(yōu)先選pandas,注意編碼、內(nèi)存和缺失值處理。