2015-11-01 20 views
6

Sono alle prese con quello che sembra essere un problema molto facile: come ottenere Seaborn per tracciare un grafico a linee temporali da un dataframe panda. Cosa sto facendo di sbagliato qui?serie temporali marittime da panda dataframe

import seaborn as sns 
import pandas as pd 
df=pd.DataFrame({"Date":["2015-03-03","2015-03-02","2015-03-01"],"Close":[1,3,2]}) 
df["Date"]=pd.to_datetime(df["Date"])#Not sure if seaborn can parse strings as dates 
sns.tsplot(data=df,unit=None, time="Date", value="Close") 

ottengo questo traceback:

--------------------------------------------------------------------------- 
ValueError        Traceback (most recent call last) 
<ipython-input-306-20e252f661c2> in <module>() 
     1 df=pd.DataFrame({"Date":["2015-03-03","2015-03-02","2015-03-01"],"Close":[1,3,2]}) 
     2 df["Date"]=pd.to_datetime(df["Date"]) 
----> 3 sns.tsplot(data=df,unit=None, time="Date", value="Close") 

C:\Anaconda\lib\site-packages\seaborn\timeseries.pyc in tsplot(data, time, unit, condition, value, err_style, ci, interpolate, color, estimator, n_boot, err_palette, err_kws, legend, ax, **kwargs) 
    275  for c, (cond, df_c) in enumerate(data.groupby(condition, sort=False)): 
    276 
--> 277   df_c = df_c.pivot(unit, time, value) 
    278   x = df_c.columns.values.astype(np.float) 
    279 

C:\Anaconda\lib\site-packages\pandas\core\frame.pyc in pivot(self, index, columns, values) 
    3507   """ 
    3508   from pandas.core.reshape import pivot 
-> 3509   return pivot(self, index=index, columns=columns, values=values) 
    3510 
    3511  def stack(self, level=-1, dropna=True): 

C:\Anaconda\lib\site-packages\pandas\core\reshape.pyc in pivot(self, index, columns, values) 
    324  else: 
    325   indexed = Series(self[values].values, 
--> 326       index=MultiIndex.from_arrays([self[index], 
    327              self[columns]])) 
    328   return indexed.unstack(columns) 

C:\Anaconda\lib\site-packages\pandas\core\frame.pyc in __getitem__(self, key) 
    1795    return self._getitem_multilevel(key) 
    1796   else: 
-> 1797    return self._getitem_column(key) 
    1798 
    1799  def _getitem_column(self, key): 

C:\Anaconda\lib\site-packages\pandas\core\frame.pyc in _getitem_column(self, key) 
    1802   # get column 
    1803   if self.columns.is_unique: 
-> 1804    return self._get_item_cache(key) 
    1805 
    1806   # duplicate columns & possible reduce dimensionaility 

C:\Anaconda\lib\site-packages\pandas\core\generic.pyc in _get_item_cache(self, item) 
    1082   res = cache.get(item) 
    1083   if res is None: 
-> 1084    values = self._data.get(item) 
    1085    res = self._box_item_values(item, values) 
    1086    cache[item] = res 

C:\Anaconda\lib\site-packages\pandas\core\internals.pyc in get(self, item, fastpath) 
    2858       loc = indexer.item() 
    2859      else: 
-> 2860       raise ValueError("cannot label index with a null key") 
    2861 
    2862    return self.iget(loc, fastpath=fastpath) 

ValueError: cannot label index with a null key 

Purtroppo, non ho trovato alcuna risposta nella documentazione.

risposta

Problemi correlati