如何使用Python获取CSV列的中间值

2024-09-28 19:32:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我的CSV文件的头如下:

Last Name, First Name, Student No, A1, A2, A3, A4

Squarepants, Spongebob, 9911991199, 99, 88, 77, 66

Star, Patrick, 9912334456, 11, 22, 33, 44

Tentacles, Squidward, 9913243567, 78, 58, 68, 88

对于我的函数,我想按顺序返回赋值(a)中位数的列表。而且赋值的数量可以改变,所以函数应该考虑n个赋值量。你知道吗

谢谢


Tags: 文件csv函数nonamea2a1student
1条回答
网友
1楼 · 发布于 2024-09-28 19:32:51

^{}中收集项目,然后在每个中位数列表上应用^{}如何:

from csv import reader
from statistics import median
from collections import defaultdict

data = defaultdict(list)
with open('data.csv') as file:
    csv_reader = reader(file)
    headers = list(map(str.strip, next(csv_reader)))

    for line in csv_reader:
        for col, value in enumerate(map(str.strip, line)):
            data[headers[col]].append(value)

medians = {k: median(map(float, v)) for k, v in data.items() if k.startswith('A')}

print(medians)

输出中音字典:

{'A1': 78.0, 'A2': 58.0, 'A3': 68.0, 'A4': 66.0}

更新:

根据要求,您还可以获得如下中间值列表:

print(list(medians.values()))
# [78.0, 58.0, 68.0, 66.0]

相关问题 更多 >