Python用字典統(tǒng)計CSV數據的實現示例
在數據分析過程中,CSV(Comma-Separated Values)文件是一種常見的數據存儲格式。Python 提供了許多處理CSV文件的工具,其中字典(dictionary)是一個非常高效的數據結構,可以用來統(tǒng)計和處理CSV數據。本文將詳細介紹如何使用Python字典統(tǒng)計CSV數據,并通過多個實例來說明其應用場景。
一、準備工作
在開始之前,我們需要安裝和導入必要的庫。這里我們使用Python內置的csv模塊來讀取CSV文件,同時使用collections模塊中的defaultdict來方便地統(tǒng)計數據。
import csv from collections import defaultdict
二、讀取CSV文件
首先,讓我們看看如何讀取一個CSV文件。假設我們有一個名為data.csv的文件,內容如下:
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Alice,32,New York
David,25,Chicago
我們可以使用以下代碼來讀取文件:
filename = 'data.csv'
with open(filename, mode='r', newline='') as file:
reader = csv.DictReader(file)
data = [row for row in reader]
print(data)運行上述代碼會輸出:
[{'name': 'Alice', 'age': '30', 'city': 'New York'},
{'name': 'Bob', 'age': '25', 'city': 'Los Angeles'},
{'name': 'Alice', 'age': '32', 'city': 'New York'},
{'name': 'David', 'age': '25', 'city': 'Chicago'}]
三、使用字典統(tǒng)計數據
統(tǒng)計每個城市的人員數量
我們可以使用字典來統(tǒng)計每個城市的人員數量:
city_count = defaultdict(int)
for row in data:
city = row['city']
city_count[city] += 1
print(dict(city_count))運行結果:
{'New York': 2, 'Los Angeles': 1, 'Chicago': 1}
統(tǒng)計每個名字出現的次數
類似地,我們可以統(tǒng)計每個名字出現的次數:
name_count = defaultdict(int)
for row in data:
name = row['name']
name_count[name] += 1
print(dict(name_count))運行結果:
{'Alice': 2, 'Bob': 1, 'David': 1}
統(tǒng)計每個城市的平均年齡
我們還可以統(tǒng)計每個城市的平均年齡。這需要兩個步驟:首先統(tǒng)計每個城市的總年齡和人數,然后計算平均年齡。
city_age_sum = defaultdict(int)
city_count = defaultdict(int)
for row in data:
city = row['city']
age = int(row['age'])
city_age_sum[city] += age
city_count[city] += 1
city_avg_age = {city: city_age_sum[city] / city_count[city] for city in city_age_sum}
print(city_avg_age)運行結果:
{'New York': 31.0, 'Los Angeles': 25.0, 'Chicago': 25.0}
四、多場景應用
除了上述基礎統(tǒng)計,字典還可以用于更復雜的數據處理場景。下面是幾個應用實例:
統(tǒng)計每個名字在每個城市的出現次數
name_city_count = defaultdict(lambda: defaultdict(int))
for row in data:
name = row['name']
city = row['city']
name_city_count[name][city] += 1
print({name: dict(city_count) for name, city_count in name_city_count.items()})運行結果:
{'Alice': {'New York': 2},
'Bob': {'Los Angeles': 1},
'David': {'Chicago': 1}}
統(tǒng)計每個年齡段的人數
假設我們要統(tǒng)計20-29歲、30-39歲等年齡段的人數:
age_group_count = defaultdict(int)
for row in data:
age = int(row['age'])
if 20 <= age < 30:
age_group = '20-29'
elif 30 <= age < 40:
age_group = '30-39'
# 其他年齡段可以繼續(xù)添加
else:
age_group = 'Other'
age_group_count[age_group] += 1
print(dict(age_group_count))運行結果:
{'30-39': 2, '20-29': 2}
五、總結
本文介紹了如何使用Python字典統(tǒng)計CSV數據,并通過多個實例展示了其在不同場景下的應用。字典作為一種靈活高效的數據結構,可以極大地簡化數據統(tǒng)計和處理的過程。希望這些示例能夠幫助你更好地理解和應用Python字典來處理實際數據分析任務。
到此這篇關于Python用字典統(tǒng)計CSV數據的實現示例的文章就介紹到這了,更多相關Python 字典統(tǒng)計CSV內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于Python和OpenCV實現攝像頭實時文檔掃描與透視矯正
本文基于OpenCV和Python設計并實現了一套實時文檔掃描系統(tǒng),系統(tǒng)通過攝像頭采集視頻流,運用邊緣檢測、輪廓提取、多邊形逼近、透視變換及自適應二值化等技術,自動識別并矯正文檔為正視掃描圖,文章詳細介紹了系統(tǒng)的技術架構、核心算法原理及工程實現細節(jié)2026-04-04
PyCharm解決虛擬環(huán)境pip無法使用的問題及分析
文章主要介紹了在PyCharm中使用虛擬環(huán)境時遇到的一些bug及其解決方法,包括新建虛擬環(huán)境時pip命令報錯和更換路徑后pip命令無法使用的問題,此外,還介紹了如何在虛擬環(huán)境中安裝軟件包并與全局軟件包進行隔離,以及如何進入和退出虛擬環(huán)境2026-01-01
Python讀取系統(tǒng)文件夾內所有文件并統(tǒng)計數量的方法
今天小編就為大家分享一篇Python讀取系統(tǒng)文件夾內所有文件并統(tǒng)計數量的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

