我有多个CSV文件(每个股票代号一个),我希望将其加载到嵌套字典中,例如:
market_data["Symbol"] = { "Open": [], "High": [], "Low": [], "Close": [],
"Volume": [], "Adjusted": [], "Date": [], "MA_10":[] }
对于每个符号,我都有一个不同的CSV文件,并且每个CSV文件都具有Open,High,Low等数据,但名称不一定相同。我想将其加载到该数据结构中,但无法弄清楚。
我希望它看起来像:
打印market_data
{'SYMBOL2':{'High':[20,22,23,19,21],'Volume':[100,200,300, 400、500],“已调整”:[12、13、14、15、16],“低”:[10、12、13、9, 1],'MA_10':[],'Date':['2015-01-01','2015-01-02','2015-01-03', '2015-01-04','2015-01-05'],'关闭':[15、15、15、11、16],“打开”: [12,13,14,15,15,16]},'SYMBOL1':{'高':[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]}}
答案 0 :(得分:1)
我没有像您这样的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)
答案 1 :(得分:1)
大致上,您可以按照以下步骤进行操作:
import pandas as pd
# enter your filenames in the list
# if they are in a particular directory
# you can also use os.listdir or something
# like that to get the actual filenames
filenames= ['ibm.csv']
result_dict= dict()
for file in filenames:
# load the csv in a dataframe
df= pd.read_csv(file, sep=',')
symbol= file.split('.')[0]
symbol_dict= result_dict.setdefault(symbol, dict())
# process the dataframe columnwise
# turning each column into a key in the dict
# and it's values into a list
for col, ser in df.items():
symbol_dict.setdefault(col, list()).extend(ser.to_list())