Python讀取CSV文件主要有兩種方式,使用內(nèi)置的csv模塊或第三方庫(kù)pandas。csv模塊適合輕量級(jí)操作,通過(guò)csv.reader或csv.DictReader逐行解析數(shù)據(jù)為列表或字典。pandas則適合復(fù)雜數(shù)據(jù)處理,提供pd.read_csv()直接生成DataFrame對(duì)象,支持列名訪問(wèn)、數(shù)據(jù)過(guò)濾等高級(jí)功能。選擇方法時(shí)需權(quán)衡數(shù)據(jù)規(guī)模與開(kāi)發(fā)效率。
Python怎么讀取csv文件?
在Python中,可以使用內(nèi)置的csv模塊或第三方庫(kù)來(lái)讀取CSV文件。以下是兩種方法的詳細(xì)說(shuō)明和示例代碼:
方法一:使用內(nèi)置的csv模塊
csv模塊是Python標(biāo)準(zhǔn)庫(kù)的一部分,適合處理簡(jiǎn)單的CSV文件。
示例代碼
pythonimport csv# 打開(kāi)CSV文件with open('data.csv', mode='r', encoding='utf-8') as file:# 創(chuàng)建CSV閱讀器對(duì)象csv_reader = csv.reader(file)# 逐行讀取數(shù)據(jù)for row in csv_reader:print(row) # 每行是一個(gè)列表,如 ['Name', 'Age', 'City']# 如果CSV有標(biāo)題行,可使用DictReader按列名訪問(wèn)with open('data.csv', mode='r', encoding='utf-8') as file:csv_dict_reader = csv.DictReader(file)for row in csv_dict_reader:print(row['Name'], row['Age']) # 通過(guò)列名訪問(wèn)數(shù)據(jù)
參數(shù)說(shuō)明
delimiter:指定分隔符(默認(rèn)為,),例如delimiter=';'。
quotechar:指定引號(hào)字符(默認(rèn)為"),用于處理含特殊字符的字段。
方法二:使用pandas庫(kù)
pandas適合處理復(fù)雜數(shù)據(jù),功能更強(qiáng)大。
安裝pandas
bashpip install pandas
示例代碼
pythonimport pandas as pd# 讀取CSV文件到DataFramedf = pd.read_csv('data.csv', encoding='utf-8')# 查看前5行數(shù)據(jù)print(df.head())# 按列名訪問(wèn)數(shù)據(jù)print(df['Name']) # 輸出Name列的所有值print(df.at[0, 'Age']) # 輸出第一行的Age值
常用參數(shù)
sep:分隔符(默認(rèn)為,),例如sep=';'。
header:指定標(biāo)題行位置默認(rèn)為0,即第一行。
index_col:將某列設(shè)為行索引(如index_col=0)。
三、處理特殊場(chǎng)景
1. 讀取無(wú)標(biāo)題的CSV
python# 使用csv模塊with open('data.csv', 'r') as file:csv_reader = csv.reader(file)headers = next(csv_reader) # 手動(dòng)讀取第一行作為標(biāo)題data = list(csv_reader) # 剩余數(shù)據(jù)# 使用pandasdf = pd.read_csv('data.csv', header=None)df.columns = ['Col1', 'Col2', 'Col3'] # 自定義列名
2. 處理大文件(分塊讀取)
python# pandas分塊讀取(每次讀取1000行)chunk_size = 1000for chunk in pd.read_csv('large_data.csv', chunksize=chunk_size):process(chunk) # 對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行處理
3. 處理編碼問(wèn)題
python# 嘗試不同編碼(如gbk、latin1)df = pd.read_csv('data.csv', encoding='gbk')
四、總結(jié)
簡(jiǎn)單需求:使用csv模塊。
復(fù)雜需求:使用pandas,支持?jǐn)?shù)據(jù)清洗、分析、導(dǎo)出為Excel等。
注意:始終檢查文件路徑、編碼和分隔符是否匹配實(shí)際文件格式。
以上就是關(guān)于Python怎么讀取csv文件的詳細(xì)介紹,讀取CSV時(shí)需注意編碼、分隔符和文件路徑問(wèn)題。若遇亂碼,嘗試指定encoding='gbk'或'latin1';若格式特殊,需設(shè)置sep=';'。處理超大文件時(shí),pandas的分塊讀取可避免內(nèi)存溢出。最終建議優(yōu)先使用pandas簡(jiǎn)化流程,除非項(xiàng)目對(duì)依賴庫(kù)有嚴(yán)格限制。