【发布时间】:2014-11-25 11:39:26
【问题描述】:
我正在尝试将 .csv 数据输入 python。
这是我的代码的样子:
import csv
revenue = {}
prices = []
for i in range(1,21):
prices.append(i)
prices = tuple(prices) #convert to tuple to make immutable and faster
with open("test.csv") as file_handle:
file_reader = csv.reader(file_handle)
file_handle.readline()
file_handle.readline() #skip first 2 lines due to column header titles
for row in file_reader:
revenue[prices] = row[1] #assign revenue at each price-point
print revenue
print revenue[10]
这是 .csv 数据的样子,或者我的输入。
0.01 1397371
0.02 1350610
0.03 1306431
0.04 1136959
0.05 1106950
0.06 1064727
0.07 1037497
0.08 1030768
0.09 976552
0.1 963091
0.11 949641
0.12 917551
0.13 884734
0.14 878675
0.15 775261
0.16 765643
0.17 756057
0.18 733458
0.19 723077
0.2 654178
第一列是价格,第二列是收入。因为我选择的价格总是相同的,我实际上忽略了数据,只是简单地创建了一个整数形式的价格列表,我将其转换为一个元组(因为我读到如果数据是不可变的,元组将处理得更快) .
问题:如果我打印收入[10],我想看到 963091。相反,我得到 KeyError: 20。
当我打印收入时,我希望打印所有价格和相关收入,相反,我打印了整个价目表,然后是列表中最后一个价格的最终收入值 (0.2),654178。
我是 python 新手,所以对于新手问题我深表歉意,我一直在阅读并试图解决这个问题,但我仍在苦苦挣扎 - 也欢迎任何关于我的方法的建议,我可以使用我提供的所有帮助可以得到。
提前致谢!
【问题讨论】:
-
revenue是一个字典,它不包含值为 10 的键。根据您要查找的内容,您需要将收入定义为列表:revenue = []和以后使用revenue.append(row[1]) -
当您使用
10时,Keyerror怎么可能是20?从错误中添加实际的回溯 -
您正在使用整个
prices元组作为键。这只是您字典中的一个键。 -
也可能你应该看看相关问题reading two column csv as dict。
-
抱歉,Keyerror 是 10,这是一个错字。
标签: python excel python-2.7 csv