【发布时间】:2018-03-07 02:15:15
【问题描述】:
我有一个股票价格数据的 CSV 文件,我想将它放入包含日期和收盘价的字典中。
这是 CSV 的样子:
date close volume open high low
2017/09/22 151.89 46575410 152.02 152.27 150.56
2017/09/21 153.39 37350060 155.8 155.8 152.75
2017/09/20 156.07 52126240 157.9 158.26 153.83
2017/09/19 158.73 20565620 159.51 159.77 158.44
我希望最后的字典是这样排列的:
perfect_dict = [
{'Date': '2017/09/22', 'Close': '151.89'},
{'Date': '2017/09/21', 'Close': '153.39'},
...]
我当前的代码获取 CSV 数据并为日期和收盘价创建两个单独的列表。我试过使用dict(zip(dates, close_prices),但这并没有按照我上面提到的方式格式化新字典。这是我的代码:
import csv
from collections import defaultdict
# --->
columns = defaultdict(list)
with open('mydata.csv') as f:
reader = csv.DictReader(f)
for row in reader: value2,...}
for (k,v) in row.items():
columns[k].append(v)
dates = columns['date']
close_prices = columns['close']
# This is what doesn't format it right
#stock_dict = dict(zip(dates, close_prices))
#pprint.pprint(stock_dict)
如果有人能指出我正确的方向,那就太棒了,谢谢!
【问题讨论】:
-
我有一个问题。为什么你的逗号分隔值文件没有用逗号分隔?
-
有两件事是错误的。您期望字典作为输出。但是,没有与每个子词典关联的键。此外,您在 csv 文件中没有逗号。
-
@HyperNeutrino 我明白你的意思,哈哈。这些数据只是复制了一个 Google 电子表格,这就是原因
标签: python python-3.x csv dictionary stockquotes