def _historical_data_to_dataframe(self, data): d = {} for symbol in self._symbols: if 'timestamp' in data[symbol]: d[symbol] = _history_dataframe(data, symbol) else: d[symbol] = data[symbol] if all(isinstance(d[key], pd.DataFrame) for key in d): if len(d) == 1: df = d[self._symbols[0]] else: df = pd.concat(list(d.values()), keys=list(d.keys()), names=['symbol', 'date'], sort=False) columns = list(df.columns) if 'dividends' in columns: df[['dividends']] = df[['dividends']].fillna(value=0) columns.remove('dividends') if 'splits' in columns: df[['splits']] = df[['splits']].fillna(value=0) columns.remove('splits') try: df[columns] = df.groupby(['symbol'])[columns].ffill() except (KeyError, ValueError): df.fillna(method='ffill', inplace=True) return df return d
def _historical_data_to_dataframe(self, data, params, adj_timezone): d = {} for symbol in self._symbols: if "timestamp" in data[symbol]: d[symbol] = _history_dataframe(data, symbol, params, adj_timezone) else: d[symbol] = data[symbol] if all(isinstance(d[key], pd.DataFrame) for key in d): df = pd.concat(d, names=["symbol", "date"], sort=False) if "dividends" in df.columns: df["dividends"].fillna(0, inplace=True) if "splits" in df.columns: df["splits"].fillna(0, inplace=True) return df return d
def _historical_data_to_dataframe(self, data, params, adj_timezone): d = {} for symbol in self._symbols: if 'timestamp' in data[symbol]: d[symbol] = _history_dataframe(data, symbol, params, adj_timezone) else: d[symbol] = data[symbol] if all(isinstance(d[key], pd.DataFrame) for key in d): df = pd.concat(d, names=['symbol', 'date'], sort=False) if 'dividends' in df.columns: df[['dividends']] = df[['dividends']].fillna(value=0) if 'splits' in df.columns: df[['splits']] = df[['splits']].fillna(value=0) return df return d