Python 扩展时间序列
我想在使用新数据更新时扩展一个timeseries。下面是我如何创建股票数据的初始面板。这是初始的空面板:Python 扩展时间序列,python,pandas,panel,time-series,Python,Pandas,Panel,Time Series,我想在使用新数据更新时扩展一个timeseries。下面是我如何创建股票数据的初始面板。这是初始的空面板: def create_blank_data(): dates = pd.date_range(start=dt.date(2008, 1, 1), end=dt.date.today()) attrs = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close'] symbols_ = symbols.read()
def create_blank_data():
dates = pd.date_range(start=dt.date(2008, 1, 1), end=dt.date.today())
attrs = ['Open', 'High', 'Low', 'Close', 'Volume', 'Adj Close']
symbols_ = symbols.read()
data = np.zeros((len(symbols_), len(dates), len(attrs)))
return pd.Panel(data, items=symbols_, major_axis=dates, minor_axis=attrs)
然后,我可以像这样填充初始数据:
def test_fresh_data():
data = create_blank_data()
for symbol in symbols.read():
data[symbol] = api(symbol, start='2010-01-01') # returns a Dataframe.
return data
这似乎有效,但我无法扩展数据。如果我加载的任何数据帧包含较新的数据,我想更新面板。当前,如果我使用另一行“data[symbol]=api(symbol,start='2010-01-01')更新面板,则具有比面板中定义的日期更新的数据将被忽略。我认为首先应该明确地扩大小组的日期范围
我一直在使用如果没有一些样本数据和对
符号
和api
的解释,回答这个问题并不容易。您还应该解释正在更新的新数据是否与现有数据重叠。“符号”是短字符串,如“GOOG”和“AAPL”。api从internet检索最新的数据帧。示例:数据['GOOG']['Close'][dt.date(2013,1,2)]检索谷歌2013年1月2日的收盘价。我倾向于回答“没有简单的方法添加到面板的长轴/短轴,或者将行添加到数据帧”,新数据确实与现有数据重叠;我只想更新非重叠数据。一个短期解决方案就是用更新的数据替换旧数据。