Python讀取外部CSV格式文件的方法有多種,常用的方法包括使用內(nèi)置的csv模塊、pandas庫(kù)以及numpy庫(kù)等。Python內(nèi)置的csv模塊適合處理結(jié)構(gòu)簡(jiǎn)單的CSV文件。通過(guò)csv.reader逐行讀取數(shù)據(jù),或用csv.DictReader將首行字段名映射為字典鍵,便于按列名訪問(wèn)。
python怎么讀取csv文件?
在Python中,讀取CSV文件有多種方法,以下是常見(jiàn)的幾種方式及示例代碼:
方法1:使用標(biāo)準(zhǔn)庫(kù) csv 模塊
pythonimport csv# 讀取CSV文件with open('example.csv', mode='r', encoding='utf-8') as file:csv_reader = csv.reader(file)# 逐行讀取(每行是列表)for row in csv_reader:print(row) # 輸出: ['列1值', '列2值', ...]# 讀取為字典(首行為鍵)with open('example.csv', mode='r', encoding='utf-8') as file:csv_dict = csv.DictReader(file)for row in csv_dict:print(row['列名1'], row['列名2']) # 通過(guò)列名訪問(wèn)
參數(shù)說(shuō)明:
encoding='utf-8':避免中文亂碼,根據(jù)文件實(shí)際編碼調(diào)整。
csv.DictReader:自動(dòng)將首行作為字典的鍵。
方法2:使用 pandas
pythonimport pandas as pd# 讀取CSV到DataFramedf = pd.read_csv('example.csv', encoding='utf-8')# 查看前5行print(df.head())# 訪問(wèn)列數(shù)據(jù)print(df['列名'].values) # 轉(zhuǎn)為數(shù)組
優(yōu)勢(shì):
直接處理為表格結(jié)構(gòu),支持篩選、統(tǒng)計(jì)等操作。
參數(shù)豐富(如 sep=';' 指定分隔符,na_values='NA' 處理缺失值)。

方法3:使用 numpy
pythonimport numpy as np# 讀取CSV(假設(shè)無(wú)表頭,純數(shù)值)data = np.loadtxt('example.csv', delimiter=',', skiprows=1)print(data)
注意:
適合數(shù)值型數(shù)據(jù),非數(shù)值內(nèi)容需額外處理。
常見(jiàn)問(wèn)題處理
文件路徑:
若文件不在當(dāng)前目錄,使用絕對(duì)路徑。
編碼問(wèn)題:
報(bào)錯(cuò) UnicodeDecodeError 時(shí),嘗試 encoding='gbk' 或 'latin1'。
大文件優(yōu)化:
使用 pandas.read_csv(..., chunksize=1000) 分塊讀取。
寫入CSV:
pythondf.to_csv('output.csv', index=False, encoding='utf-8') # 不保存索引
總結(jié)
簡(jiǎn)單讀?。河?csv 模塊。
數(shù)據(jù)分析:用 pandas。
數(shù)值計(jì)算:用 numpy。
根據(jù)需求選擇合適的方法即可!
對(duì)于數(shù)據(jù)分析場(chǎng)景,pandas.read_csv()更強(qiáng)大。它直接將CSV轉(zhuǎn)為DataFrame,支持列篩選、缺失值處理等??芍付ǚ指舴?如sep=';')、跳過(guò)表頭(header=0)、處理缺失值(na_values='NA')。適合復(fù)雜數(shù)據(jù)清洗和統(tǒng)計(jì)操作。