Python可通過內置csv模塊或第三方庫pandas讀取CSV文件。使用csv模塊時,需用open()打開文件并指定編碼,再通過csv.reader逐行解析。以下方法均可用于讀取CSV文件的數(shù)據(jù),并且使用不同的庫/方法方式進行處理。根據(jù)具體的需求和使用場景,可以選擇最適合的方法來讀取和處理CSV文件數(shù)據(jù)。
一、Python讀取CSV的函數(shù)
Python內置csv模塊和第三方庫pandas均可讀取CSV文件,以下是兩種主流方法:
使用csv模塊(標準庫)
pythonimport csvwith open('data.csv', mode='r', encoding='utf-8') as file:reader = csv.reader(file) # 或使用csv.DictReader讀取為字典for row in reader:print(row) # 每行是一個列表
參數(shù)說明:
?。洌澹欤椋恚椋簦澹?',':指定分隔符。
quotechar='"':處理字段中的引號。
使用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', '']:指定缺失值標識。
二、Python讀取CSV的注意事項
編碼問題
明確文件編碼(如utf-8、gbk),否則中文可能亂碼??赏ㄟ^chardet庫檢測編碼:
pythonimport chardetwith open('data.csv', 'rb') as f:print(chardet.detect(f.read()))
大文件處理
大文件建議分塊讀取:
pythonfor chunk in pd.read_csv('large.csv', chunksize=10000):process(chunk) # 每次處理1萬行
數(shù)據(jù)清洗
跳過標題行:pd.read_csv
處理缺失值:df.fillna(0)或df.dropna()
性能優(yōu)化
避免逐行讀取,優(yōu)先使用pandas或csv.DictReader批量處理。
指定列類型減少內存占用。
三、Python讀取CSV的常見錯誤處理
文件路徑錯誤:使用絕對路徑或os.path拼接路徑:
pythonimport ospath = os.path.join
分隔符不匹配:檢查文件實際分隔符(如;或|)。
內存不足:大文件用chunksize或數(shù)據(jù)庫替代。
在Python中讀取CSV文件,有幾種常見的方法,其中使用Python標準庫中的`csv`模塊是最基本的方法之一。簡單任務用csv模塊,數(shù)據(jù)分析優(yōu)先選pandas,注意編碼、內存和缺失值處理。