欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例

 更新時(shí)間:2024年05月23日 10:10:00   作者:mb63bf950cadbf9  
python提供了許多處理CSV文件的工具,其中字典是一個(gè)非常高效的數(shù)據(jù)結(jié)構(gòu),本文主要介紹了Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下

在數(shù)據(jù)分析過(guò)程中,CSV(Comma-Separated Values)文件是一種常見(jiàn)的數(shù)據(jù)存儲(chǔ)格式。Python 提供了許多處理CSV文件的工具,其中字典(dictionary)是一個(gè)非常高效的數(shù)據(jù)結(jié)構(gòu),可以用來(lái)統(tǒng)計(jì)和處理CSV數(shù)據(jù)。本文將詳細(xì)介紹如何使用Python字典統(tǒng)計(jì)CSV數(shù)據(jù),并通過(guò)多個(gè)實(shí)例來(lái)說(shuō)明其應(yīng)用場(chǎng)景。

一、準(zhǔn)備工作

在開(kāi)始之前,我們需要安裝和導(dǎo)入必要的庫(kù)。這里我們使用Python內(nèi)置的csv模塊來(lái)讀取CSV文件,同時(shí)使用collections模塊中的defaultdict來(lái)方便地統(tǒng)計(jì)數(shù)據(jù)。

import csv
from collections import defaultdict

二、讀取CSV文件

首先,讓我們看看如何讀取一個(gè)CSV文件。假設(shè)我們有一個(gè)名為data.csv的文件,內(nèi)容如下:

name,age,city
Alice,30,New York
Bob,25,Los Angeles
Alice,32,New York
David,25,Chicago

我們可以使用以下代碼來(lái)讀取文件:

filename = 'data.csv'

with open(filename, mode='r', newline='') as file:
    reader = csv.DictReader(file)
    data = [row for row in reader]

print(data)

運(yùn)行上述代碼會(huì)輸出:

[{'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)計(jì)數(shù)據(jù)

統(tǒng)計(jì)每個(gè)城市的人員數(shù)量

我們可以使用字典來(lái)統(tǒng)計(jì)每個(gè)城市的人員數(shù)量:

city_count = defaultdict(int)

for row in data:
    city = row['city']
    city_count[city] += 1

print(dict(city_count))

運(yùn)行結(jié)果:

{'New York': 2, 'Los Angeles': 1, 'Chicago': 1}

統(tǒng)計(jì)每個(gè)名字出現(xiàn)的次數(shù)

類(lèi)似地,我們可以統(tǒng)計(jì)每個(gè)名字出現(xiàn)的次數(shù):

name_count = defaultdict(int)

for row in data:
    name = row['name']
    name_count[name] += 1

print(dict(name_count))

運(yùn)行結(jié)果:

{'Alice': 2, 'Bob': 1, 'David': 1}

統(tǒng)計(jì)每個(gè)城市的平均年齡

我們還可以統(tǒng)計(jì)每個(gè)城市的平均年齡。這需要兩個(gè)步驟:首先統(tǒng)計(jì)每個(gè)城市的總年齡和人數(shù),然后計(jì)算平均年齡。

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)

運(yùn)行結(jié)果:

{'New York': 31.0, 'Los Angeles': 25.0, 'Chicago': 25.0}

四、多場(chǎng)景應(yīng)用

除了上述基礎(chǔ)統(tǒng)計(jì),字典還可以用于更復(fù)雜的數(shù)據(jù)處理場(chǎng)景。下面是幾個(gè)應(yīng)用實(shí)例:

統(tǒng)計(jì)每個(gè)名字在每個(gè)城市的出現(xiàn)次數(shù)

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()})

運(yùn)行結(jié)果:

{'Alice': {'New York': 2},
 'Bob': {'Los Angeles': 1},
 'David': {'Chicago': 1}}

統(tǒng)計(jì)每個(gè)年齡段的人數(shù)

假設(shè)我們要統(tǒng)計(jì)20-29歲、30-39歲等年齡段的人數(shù):

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))

運(yùn)行結(jié)果:

{'30-39': 2, '20-29': 2}

五、總結(jié)

本文介紹了如何使用Python字典統(tǒng)計(jì)CSV數(shù)據(jù),并通過(guò)多個(gè)實(shí)例展示了其在不同場(chǎng)景下的應(yīng)用。字典作為一種靈活高效的數(shù)據(jù)結(jié)構(gòu),可以極大地簡(jiǎn)化數(shù)據(jù)統(tǒng)計(jì)和處理的過(guò)程。希望這些示例能夠幫助你更好地理解和應(yīng)用Python字典來(lái)處理實(shí)際數(shù)據(jù)分析任務(wù)。

到此這篇關(guān)于Python用字典統(tǒng)計(jì)CSV數(shù)據(jù)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python 字典統(tǒng)計(jì)CSV內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論