python - calling variable inside string returns ValueError -
i'm trying define these 2 variables, , use them again in line 6. however, following error when running. seems happen pandas.date_range. end goal run .py file produce chart.
start_date = raw_input('enter start date: ') end_date = raw_input('enter end date: ') datapr['date'] = pd.datetimeindex(datapr['intake_date']).date grouped_datapr = datapr.groupby(['date']).sum() idx = pd.date_range(start='%s', end='%s') % (start_date, end_date) grouped_datapr.index = pd.datetimeindex(grouped_datapr.index) grouped_datapr = grouped_datapr.reindex(idx, fill_value=0) grouped_datapr['date'] = grouped_datapr.index datapr_df = pd.dataframe([grouped_datapr]) ts = pd.series(grouped_datapr['count'], index=grouped_datapr.index) ts.plot() pd.rolling_mean(ts,30).plot(style='k') error:
valueerror traceback (most recent call last) <ipython-input-33-2ac5fe9d8951> in <module>() 2 grouped_datapr = datapr.groupby(['date']).sum() 3 #idx = pd.date_range('%s', '%s' % (start_date, end_date)) ----> 4 idx = pd.date_range(start='%s', end='%s') % (start_date, end_date) 5 grouped_datapr.index = pd.datetimeindex(grouped_datapr.index) 6 grouped_datapr = grouped_datapr.reindex(idx, fill_value=0) /users/abc/anaconda/lib/python2.7/site- packages/pandas/tseries/index.pyc in date_range(start, end, periods, freq, tz, normalize, name, closed, **kwargs) 1921 return datetimeindex(start=start, end=end, periods=periods, 1922 freq=freq, tz=tz, normalize=normalize, name=name, -> 1923 closed=closed, **kwargs) 1924 1925 /users/abc/anaconda/lib/python2.7/site- packages/pandas/util/decorators.pyc in wrapper(*args, **kwargs) 87 else: 88 kwargs[new_arg_name] = new_arg_value ---> 89 return func(*args, **kwargs) 90 return wrapper 91 return _deprecate_kwarg /users/abc/anaconda/lib/python2.7/site- packages/pandas/tseries/index.pyc in __new__(cls, data, freq, start, end, periods, copy, name, tz, verify_integrity, normalize, closed, ambiguous, dtype, **kwargs) 235 return cls._generate(start, end, periods, name, freq, 236 tz=tz, normalize=normalize, closed=closed, --> 237 ambiguous=ambiguous) 238 239 if not isinstance(data, (np.ndarray, index, abcseries)): /users/abc/anaconda/lib/python2.7/site- packages/pandas/tseries/index.pyc in _generate(cls, start, end, periods, name, offset, tz, normalize, ambiguous, closed) 377 378 if start not none: --> 379 start = timestamp(start) 380 381 if end not none: pandas/tslib.pyx in pandas.tslib.timestamp.__new__ (pandas/tslib.c:8973)() pandas/tslib.pyx in pandas.tslib.convert_to_tsobject (pandas/tslib.c:22522)() pandas/tslib.pyx in pandas.tslib.convert_str_to_tsobject (pandas/tslib.c:24520)() valueerror:
i think need
pd.date_range(start=start_date, end=end_date) reason being pandas.data_range expects string or datetime-like object both start , end parameters. '%s' not datetime-like.
if valid option, however, code wrote trying modulo operation between pandas date_range , tuple of strings, more throws other error.
if did need use string formatting values, suggest using new way of string formatting
pd.date_range(start='{}'.format(start_date), end='{}'.format(end_date))
Comments
Post a Comment