Ошибка Python – IndexError: одиночный позиционный индексатор выходит за пределыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Python – IndexError: одиночный позиционный индексатор выходит за пределы

Сообщение Anonymous »

Я пытаюсь написать код Python для загрузки данных об акциях NSE для всех перечисленных компаний. На NSE India зарегистрировано чуть более 1700 компаний. Мне нужны данные только за последние 120 дней. Я написал приведенный ниже код, но он выдает ошибку ниже, попробовал несколько способов исправить это, но он все еще не работает. Любые рекомендации по решению этой проблемы будут высоко оценены. Обратите внимание, что я объявил все необходимые переменные, которые присутствуют в моем коде.
Ошибка:
IndexError: одиночный позиционный индексатор находится за пределами границ
Моя версия Python — 3.13
def getHistoricalData(symInfo):
res = None
try:
parseInstrument = urllib.parse.quote(symInfo.instrument_key)
fromDate = (datetime.now(TIME_ZONE) - timedelta(days=120)) . strftime("%Y-%m-%d")
todate = datetime.now(TIME_ZONE).strftime("%Y-%m-%d")
url = f'https://api.upstox.com/v2/historical-ca ... /{fromDate}'
res = requests.get(url, headers={'accept': 'application/json', }, params={}, timeout=5.0)
candleRes = res.json()

if 'data' in candleRes and 'candles' in candleRes['data'] and candleRes['data']['candles']:
candleData = pd.DataFrame(candleRes['data']['candles'])
candleData.columns = ['date', 'open', 'high', 'low', 'close', 'vol', 'oi']
candleData = candleData[['date', 'open', 'high', 'low', 'close', 'vol', 'oi']]
candleData['date'] = pd.to_datetime(candleData['date']).dt.tz_convert('Asia/Kolkata')
candleData['symbol'] = symInfo.tradingsymbol
return candleData
else:
print('No data', symInfo.instrument_key, candleRes)
except:
print(f'Error in data fetch for (symInfo.instrument_key) {res} {e}')

candledfList = []
for i in symboldf.index[:-1]:
candledfList = []
res = getHistoricalData(symboldf.iloc)
if res is not None: candledfList.append(res)
finalDataDf = pd.concat(candledfList, ignore_index=True)

isCsv = True
for symData in candledfList[:-1]:
try:
filename = symData.iloc[0]['symbol']
if isCsv:
filename = f'{filename}.csv'
symData.to_csv(folder + filename, index=False)
del candledfList
else:
filename = f'{filename}.parquet'
symData.to_parquet(folder_parquet + filename, engine='pyarrow')
del candledfList
except Exception as e:
print(f'Error {e}')


Подробнее здесь: https://stackoverflow.com/questions/792 ... -of-bounds
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»