Can someone please explain why I'm getting this error when I'm doing a lingress (slope) on 'day' and 'value' which are both numeric datatype. Below is my script:
import pandas as pd
from scipy.stats import linregress
y = pd.DataFrame({'entity':['a','a','b','b','b','c'],
'day':[1999,2004,2003,2007,2014, 2016],
'value':[2,5,3,2,7,8]})
mylist= ['a', 'b']
y1 = y.groupby('entity').apply(lambda x: x[x['entity'].isin(mylist)])
This line gives error:
y1.apply(lambda v: linregress(v['day'], v['value']))
error trace:
TypeError Traceback (most recent call last) /anaconda3/lib/python3.6/site-packages/pandas/core/indexes/multi.py in get_value(self, series, key) 999 try: -> 1000 return libindex.get_value_at(s, k) 1001 except IndexError:
pandas/_libs/index.pyx in pandas._libs.index.get_value_at()
pandas/_libs/src/util.pxd in util.get_value_at()
TypeError: 'str' object cannot be interpreted as an integer
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last) in () ----> 1 y1.apply(lambda v: linregress(v['day'], v['value'])) 2
KeyError: ('day', 'occurred at index entity')