Pandas数据帧内存消耗

2024-09-27 22:27:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用大约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函数,数据很容易被检索。在


Tags: 文件csv函数代码dfreaddatadate

热门问题