예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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