我正在尝试获取给定的csv文件并将第一列定义为键,而每个键引用一个包含2个值的数组,其中一个值在第二列中,另一个值在第三列中。最后,不能将列切换成行,反之亦然,看看我在每个csv中有多少行,我必须使用它。当我在线查看时,我能找到的唯一帮助是使用行的语法,有没有办法处理列?
以下是我尝试的代码:
import csv
reader = csv.reader(open('test.csv'))
result = {}
for row in reader:
key = column0
if key in result:
pass
result[key] = column1 and column2
print result
我正在测试的csv(test.csv):
g1_and_g2, 0.04286547, -1.45
g2_and_g2, 0.12348197, 3.00
g3_and_g4, 0.03125879, 1.89
当我在终端中运行程序时,我收到错误:
NameError: name 'g1_and_g2' is not defined
我对编程很陌生,所以对任何帮助都表示赞赏。谢谢!
编辑以添加更多信息: 预期的输出应该只是一个字典,如:
g1_and_g2: 0.04286547,-1.45
g2_and_g2: 0.12348197, 3.00
g3_and_g4: 0.03125879, 1.89
基本上,第一列中的字符串应该是键,而后两列中的整数应该是与该行中的键相关联的值。
另外,我正在运行python 2.7
答案 0 :(得分:4)
通过阅读您的描述,我了解您的目标是打开一个csv文件,其中每行的第一项是列标题/键,后续项是与该键对应的行中的单元格的值。然后你想将这一切加载到字典中?
如果该规范是正确的,这应该像您正在寻找的那样。
import csv
with open('test.csv', "r") as f:
reader = csv.reader(f)
result = {}
for row in reader:
key = row[0]
result[key] = row[1:]
print(result)