IndexError: индекс 0 выходит за границы оси 0 с размером 0 при передаче строк информационного кадра в качестве входных параметров - PullRequest
0 голосов
/ 23 января 2020

Когда я запускаю свой код, я получаю сообщение об ошибке 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...