首页 > 解决方案 > 将多个 CSV 文件加载到一个嵌套字典中

问题描述

我有多个 CSV 文件(每个股票代码一个),我想将它们加载到嵌套字典中,例如:

market_data["Symbol"] = { "Open": [], "High": [], "Low": [], "Close": [],
    "Volume": [], "Adjusted": [], "Date": [], "MA_10":[] }

我对每个符号都有一个不同的 CSV 文件,每个 CSV 文件都有诸如 Open、High、Low 等数据,但不一定是相同的名称。我想将它加载到该数据结构中,但我无法弄清楚。

我希望它看起来像:

打印市场数据

{'SYMBOL2': {'High': [20, 22, 23, 19, 21], '音量': [100, 200, 300, 400, 500], '调整后': [12, 13, 14, 15 , 16], '低': [10, 12, 13, 9, 1], 'MA_10': [], '日期': ['2015-01-01', '2015-01-02', '2015 -01-03', '2015-01-04', '2015-01-05'], '关闭': [15, 15, 15, 11, 16], '打开': [12, 13, 14, 15, 16]}, 'SYMBOL1': {'High': [20, 22, 23, 19, 21], '音量': [100, 200, 300, 400, 500], '调整后': [12, 13, 14, 15, 16],'低':[10, 12, 13, 9, 1],'MA_10':[],'日期':['2015-01-01','2015-01- 02', '2015-01-03', '2015-01-04', '2015-01-05'], '关闭': [15, 15, 15, 11, 16], '打开': [12 , 13, 14, 15, 16]}}

标签: pythonpython-3.xpandascsvdictionary

解决方案


我没有像你这样的 CSV,但这是我想出的。如果您有我可以使用的 CSV,我会很乐意对其进行测试并进行改进。

至少它现在似乎可以与 AAPL.csv 一起使用。

更新后的版本:

import csv
market_data = {}
list_of_files = ['AAPL.csv']
for file in list_of_files:
        f = open(file, 'rt')
        reader = csv.reader(f)
        market_data[file] = {}
        flag = False
        headers = 0
        for row in reader:
                if (flag == False):
                        headers = row
                        for header in headers:
                                market_data[file][header] = []
                                flag = True
                else:
                        data = row
                        print(data)
                        for a, header in zip(data, headers):
                                market_data[file][header].append(a)

print(market_data)

推荐阅读