You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python统计CSV文件中值重复次数 音乐人专辑数统计实例

Python统计音乐人专辑数量实现方案

你可以用以下两种常用方案实现需求,第一种仅用Python标准库,无需安装额外依赖:

import csv
from collections import defaultdict

# 替换为你实际的CSV文件路径
csv_file = "./musician_album.csv"
count_dict = defaultdict(int)

with open(csv_file, "r", encoding="utf-8") as f:
    csv_reader = csv.reader(f)
    for line in csv_reader:
        # 跳过空行
        if not line:
            continue
        # 取每行第一个值为音乐人ssn,计数+1
        ssn = line[0].strip()
        count_dict[ssn] += 1

# 按ssn排序后输出指定格式结果
for ssn, cnt in sorted(count_dict.items()):
    print(f"{ssn} no of albums = {cnt}")

如果你的文件体积较大,也可以用pandas简化实现:

import pandas as pd

# 替换为你实际的CSV文件路径
csv_file = "./musician_album.csv"
# 读取无表头的CSV文件,指定两列的列名
df = pd.read_csv(csv_file, header=None, names=["ssn", "album_id"])
# 按ssn分组统计行数
count_res = df.groupby("ssn").size()

# 输出结果
for ssn, cnt in count_res.items():
    print(f"{ssn} no of albums = {cnt}")

如果你需要对同一音乐人重复的专辑编号去重后统计,可将标准库方案的统计逻辑修改为:

from collections import defaultdict
count_dict = defaultdict(set)

with open(csv_file, "r", encoding="utf-8") as f:
    csv_reader = csv.reader(f)
    for line in csv_reader:
        if not line:
            continue
        ssn, album_id = line[0].strip(), line[1].strip()
        count_dict[ssn].add(album_id)

for ssn, albums in sorted(count_dict.items()):
    print(f"{ssn} no of albums = {len(albums)}")

内容的提问来源于stack exchange,提问作者JefG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:57:04