jamalsenouci / causalimpact

Python port of CausalImpact R library
Apache License 2.0
272 stars 63 forks source link

does not work with latest version of pandas #11

Closed jvanneck closed 6 years ago

jvanneck commented 6 years ago

Pandas Version: 0.21.1


Code:

import numpy as np
import pandas as pd
from statsmodels.tsa.arima_process import arma_generate_sample
import matplotlib
import seaborn as sns
%matplotlib inline
matplotlib.rcParams['figure.figsize'] = (15, 6)

np.random.seed(1)

x1 = arma_generate_sample(ar=[0.999], ma=[0.9], nsample=100) + 100
y = 1.2 * x1 + np.random.randn(100)

y[71:100] = y[71:100] + 10
data = pd.DataFrame(np.array([y, x1]).T, columns=["y","x1"])
data.plot()
pre_period = [0,69]
post_period = [70,99]
impact = CausalImpact(data, pre_period, post_period)
impact.run()
impact.plot()

Error:

AttributeError Traceback (most recent call last)

in () 2 post_period = [70,99] 3 impact = CausalImpact(data, pre_period, post_period) ----> 4 impact.run() 5 impact.plot() /anaconda/lib/python3.6/site-packages/causalimpact/analysis.py in run(self) 33 self.params["ucm_model"], 34 self.params["post_period_response"], ---> 35 self.params["alpha"]) 36 37 # Depending on input, dispatch to the appropriate Run* method() /anaconda/lib/python3.6/site-packages/causalimpact/analysis.py in _format_input(self, data, pre_period, post_period, model_args, ucm_model, post_period_response, alpha) 209 # Check and 210 if data is not None: --> 211 checked = self._format_input_prepost(pre_period, post_period, data) 212 pre_period = checked["pre_period"] 213 post_period = checked["post_period"] /anaconda/lib/python3.6/site-packages/causalimpact/analysis.py in _format_input_prepost(self, pre_period, post_period, data) 104 pre_dtype = np.array(pre_period).dtype 105 post_dtype = np.array(post_period).dtype --> 106 if isinstance(data.index, pd.tseries.index.DatetimeIndex): 107 pre_period = [pd.to_datetime(date) for date in pre_period] 108 post_period = [pd.to_datetime(date) for date in post_period] AttributeError: module 'pandas.tseries' has no attribute 'index'
jamalsenouci commented 6 years ago

Hi, that has actually been fixed in master but the version on pip was an older version, I have updated that now so it should be fixed