App下載

Python中的CSV文件處理:簡(jiǎn)單、靈活的數(shù)據(jù)操作

星河幾重 2024-04-07 11:56:31 瀏覽數(shù) (1440)
反饋

CSV(逗號(hào)分隔值)文件是數(shù)據(jù)存儲(chǔ)和交換的常見(jiàn)格式,而Python作為一門強(qiáng)大的編程語(yǔ)言,能夠輕松處理CSV文件。本文將通過(guò)具體實(shí)例分析,展示Python在處理CSV文件方面的便利性和應(yīng)用場(chǎng)景。


首先,讓我們看一個(gè)簡(jiǎn)單的例子。假設(shè)我們有一個(gè)包含學(xué)生信息的CSV文件(students.csv),其中包括學(xué)生姓名、年齡和成績(jī)。我們想要通過(guò)Python讀取這個(gè)文件,并計(jì)算平均成績(jī)。

import csv
# 打開(kāi)CSV文件 with open('students.csv', 'r') as file: # 創(chuàng)建CSV讀取器 csv_reader = csv.reader(file) # 跳過(guò)表頭 next(csv_reader) # 初始化成績(jī)總和和學(xué)生人數(shù) total_score = 0 num_students = 0 # 逐行讀取文件 for row in csv_reader: # 提取成績(jī)列并轉(zhuǎn)換為整數(shù) score = int(row[2]) # 累加成績(jī) total_score += score num_students += 1 # 計(jì)算平均成績(jī) average_score = total_score / num_students print(f'平均成績(jī):{average_score}')

以上代碼演示了如何使用Python的CSV模塊讀取CSV文件,并計(jì)算其中一列的平均值。這只是處理CSV文件的冰山一角,Python還提供了豐富的庫(kù)和函數(shù),用于處理各種CSV操作,如寫入、過(guò)濾、排序等。

接下來(lái),我們看一個(gè)更復(fù)雜的例子。假設(shè)我們需要將一個(gè)包含商品信息的CSV文件(products.csv)中的特定商品價(jià)格降低10%。我們可以使用Python修改CSV文件并保存新的結(jié)果。

import csv
# 打開(kāi)CSV文件 with open('products.csv', 'r') as file: # 創(chuàng)建CSV讀取器 csv_reader = csv.reader(file) # 讀取表頭 header = next(csv_reader) # 找到價(jià)格列的索引 price_index = header.index('Price') # 讀取并修改每一行的價(jià)格 for row in csv_reader: # 提取價(jià)格并轉(zhuǎn)換為浮點(diǎn)數(shù) price = float(row[price_index]) # 降低價(jià)格10% new_price = price * 0.9 # 更新價(jià)格列 row[price_index] = new_price # 將修改后的結(jié)果寫入新的CSV文件 with open('updated_products.csv', 'w', newline='') as new_file: # 創(chuàng)建CSV寫入器 csv_writer = csv.writer(new_file) # 寫入表頭 csv_writer.writerow(header) # 寫入修改后的行 csv_writer.writerows(rows)

以上例子展示了如何使用Python讀取CSV文件,找到特定列,修改數(shù)據(jù),最后將結(jié)果寫入新的CSV文件。這種操作對(duì)于批量處理數(shù)據(jù)非常實(shí)用,Python的簡(jiǎn)潔語(yǔ)法和豐富的庫(kù)讓這些任務(wù)變得相對(duì)輕松。

總的來(lái)說(shuō),Python能夠輕松操控CSV文件,不僅具有良好的讀取和寫入支持,還提供了豐富的數(shù)據(jù)處理功能。這使得Python成為處理CSV文件的理想選擇,無(wú)論是簡(jiǎn)單的數(shù)據(jù)提取還是復(fù)雜的數(shù)據(jù)處理任務(wù)。

0 人點(diǎn)贊