首页 > 解决方案 > 如何将 csv 文件中的值添加到列表中?

问题描述

x,y
6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505

如何将 x 的每个值放在列表中,并且将 y 值相同?我基本上是在尝试创建一个情节。

标签: pythoncsvmatplotlibplot

解决方案


你可以这样做:

import csv
from collections import defaultdict

columns = defaultdict(list)
with open("my.csv") as fin:
    dr = csv.DictReader(fin)
    for row in dr:
        for key, val in row.items():
            columns[key].append(float(val))

print(columns["x"])
print(columns["y"])

给出:

[6.1101, 5.5277, 8.5186, 7.0032, 5.8598, 8.3829, 7.4764, 8.5781, 6.4862, 5.0546, 5.7107]
[17.592, 9.1302, 13.662, 11.854, 6.8233, 11.886, 4.3483, 12.0, 6.5987, 3.8166, 3.2522]

显然,这是假设内容将是需要转换为float的数字数据(因为问题表明您正在尝试创建绘图)。如果有非数字值,这将引发 a ValueError,因此如果可能是这种情况,那么您需要对此进行测试或处理异常。


推荐阅读