我有一系列坚实的基本数据,如市场 Value ,按日期索引的收盘价,以及每周频率的cusip . 我想重新采样它以获得每月频率的数据,但问题是我的代码需要太多内存和太多时间来处理非常少量的数据 .

这是我的代码:

def getMonthlyData(start=(datetime.now()-relativedelta(years=5)),end=datetime.now()):
    _data=getWeeklyData(start,end)
    _startTime=datetime.now()
    _data=_data.unstack('Cusip').resample('M',how=(lambda x:x[-1])).stack('Cusip')
    _endTime=datetime.now()
    print("Time Taken to Resample Data : " + str(_endTime - _startTime))
    _data.sort_index(ascending=[False,True],inplace=True)
    return _data

getWeeklyData() 函数可以快速返回数据(例如,如果我拉入大约两个月的数据),但之后程序就会挂起并且内存消耗显着增加 .

我怎样才能改进它?