我有一系列坚实的基本数据,如市场价值,按日期索引的收盘价,以及每周频率的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()
函数可以快速返回数据(例如,如果我拉入大约两个月的数据),但之后程序就会挂起并且内存消耗显着增加。
我该如何改进?