Когда я запускаю свой код, я получаю сообщение об ошибке IndexError: индекс 0 выходит за пределы оси 0 с размером 0. У меня есть функция, которая имеет два входных параметра: «дата» и «символ».
Функция
def get_data(issue_date, stock_ticker):
df = pd.read_csv (r'D:\Project\Data\Short_Interest\mergedshort.csv')
df['Date'] = pd.to_datetime(df['Date'], format="%Y%m%d")
d = df
df = pd.DataFrame(d)
short = df.loc[df.Symbol.eq(stock_ticker)]
# get the index of the row of interest
ix = short[short.Date.eq(issue_date)].index[0]
# get the item row for that row's index
iloc_ix = short.index.get_loc(ix)
# get the +/-1 iloc rows (+2 because that is how slices work), basically +1 and -1 trading days
short_data = short.iloc[iloc_ix-10: iloc_ix+11]
return [short_data]
Я импортирую CSV-файл, который содержит несколько строк с входными параметрами:
df1 = pd.read_csv(r'C:\Users\L_\Documents\datatest2.csv')
df1['Date'] = pd.to_datetime(df1['Date'], format="%d/%m/%Y")
df1
выглядит так (сначала столбец: символы, второй столбец: даты):
Symbol Date
0 symbol1 date1
1 symbol2 date2
2 symbol3 date3
3 symbol4 date4
Затем я хочу вызвать функцию со строками данных в качестве входных параметров:
get_data(df1['Date'], df1['Symbol'])
Однако при этом я получаю Ошибка IndexEr. Я пробовал множество способов исправить это, но я застрял.
Полная трассировка стека:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-111-e33dfd079336> in <module>
----> 1 get_data(df1['Date'], df1['Symbol'])
<ipython-input-62-6cb8078d405b> in get_data(issue_date, stock_ticker)
11 short = df.loc[df.Symbol.eq(stock_ticker)]
12 # get the index of the row of interest
---> 13 ix = short[short.Date.eq(issue_date)].index[0]
14 # get the item row for that row's index
15 iloc_ix = short.index.get_loc(ix)
D:\Anaconda3\envs\analysis\lib\site-packages\pandas\core\indexes\base.py in __getitem__(self, key)
3956 if is_scalar(key):
3957 key = com.cast_scalar_indexer(key)
-> 3958 return getitem(key)
3959
3960 if isinstance(key, slice):
IndexError: index 0 is out of bounds for axis 0 with size 0