我正在尝试使用大约100个csv文件来进行时间序列分析。 为了构建一个高效的算法来使用,我已经构建了我的data read_csv函数,这样它只会一次读取所有文件,而不必一次又一次地重复相同的过程。下面是我的代码:
start_date = '2016-06-01'
end_date = '2017-09-02'
allocation = 170000
#contains 100 symbols
usesymbols = ['']
cost_matrix = []
def data():
dates=pd.date_range(start_date,end_date)
df=pd.DataFrame(index=dates)
for symbol in usesymbols:
df_temp=pd.read_csv('/home/furqan/Desktop/python_data/{}.csv'.format(str(symbol)),usecols=['Date','Close'],
parse_dates=True,index_col='Date',na_values=['nan'])
df_temp = df_temp.rename(columns={'Close': symbol})
df=df.join(df_temp)
df=df.fillna(method='ffill')
df=df.fillna(method='bfill')
return df
def powerset(iterable):
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(1, len(s)+1))
power_set = list(powerset(usesymbols))
dataframe = data()
问题是,如果我用15个符号运行上面的代码,它会完美地工作。 但这还不够,我想用100个符号。 如果我用useStruments中的100个项目运行代码,我的RAM就会完全用完,机器就会冻结。在
有什么办法可以避免这种情况吗?在
编辑部分: 1) 我有16 GB的内存。在
2)问题在于变量power_set,如果我不调用powerset函数,数据很容易被检索。在
在DataFrame.memory_使用情况(索引=错误)
返回: 尺寸:系列 以列名作为索引的序列,以字节为单位列的内存使用情况。在
相关问题 更多 >
编程相关推荐