Ancalagon BerenLuthien
Ancalagon BerenLuthien

Reputation: 1194

AttributeError: 'DataFrame' object has no attribute 'date'

I am following the solution codes of Harvard-CS109-homework-1 of https://github.com/cs109/content

on iPythonNotebook, and have this error (I did not change the solution code) after running this line of code "errors = all_error_data()" :

errors = all_error_data()


/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:67: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
/anaconda/lib/python2.7/site-packages/ipykernel/__main__.py:46: FutureWarning: .resample() is now a deferred operation
use .resample(...).mean() instead of .resample(...)
---------------------------------------------------------------------------



AttributeError                            Traceback (most recent call last)
<ipython-input-18-aea6d425eefd> in <module>()
----> 1 errors = all_error_data()

<ipython-input-17-2a9c686164e8> in all_error_data()
     17 #your code here
     18 def all_error_data():
---> 19     data = [error_data(race_page) for race_page in find_governor_races(page)]
     20     return pd.concat(data, ignore_index=True)

<ipython-input-14-5c576ec1e316> in error_data(url)
     48     #compute forecast length in days
     49     #(assuming that last forecast happens on the day of the election, for simplicity)
---> 50     forecast_length = (df.date.max() - df.date).values
     51     forecast_length = forecast_length / np.timedelta64(1, 'D')  # convert to number of days
     52 

//anaconda/lib/python2.7/site-packages/pandas/core/generic.pyc in __getattr__(self, name)
   2667             if name in self._info_axis:
   2668                 return self[name]
-> 2669             return object.__getattribute__(self, name)
   2670 
   2671     def __setattr__(self, name, value):

AttributeError: 'DataFrame' object has no attribute 'date' 

Thank a lot for sharing suggestions !!

Upvotes: 0

Views: 3172

Answers (1)

Oringa
Oringa

Reputation: 360

I came across the same problem and did some research. There have been several changes to the pandas.resample which now changes the DataFrame and deletes non numerical data.

After the pd.resample there is no 'data' column so in order to fix your code just change the 50th line to address the index column instead of the data co:

    forecast_length = (df.index.max() - df.index).values

Upvotes: 2

Related Questions