сократить время цикла при работе с кадрами - PullRequest
0 голосов
/ 28 апреля 2018

Чтобы увидеть пример ответа, отметьте это в браузере https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=BTC-ETH&tickInterval=thirtyMin. У меня есть 275 значений рыночного списка и 330 временных интервалов в списке time_series. У GetTicks api есть список из тысячи слов. Меня интересуют только те записи, где интервал в time_series совпадает со значением 'T' в API GetTicks. если time_series не совпадает со значением 'T' в API GetTicks, тогда я устанавливаю соответствующие значения 'BV' / 'L' в master df как 0. Каждый цикл занимает 3 секунды, чтобы выполнить, делая около 20-25 минут времени выполнения , Есть ли лучший питонный способ построить этот мастер DF за меньшее время? Ценю вашу помощь / предложение.

мой код --->

for (mkt, market_pair) in enumerate(market_list):
    getTicks = requests.get("https://bittrex.com/Api/v2.0/pub/market/GetTicks?marketName=" + str(
        market_pair) + "&tickInterval=thirtyMin")
    getTicks_result = (getTicks.json())["result"]
    print(mkt + 1, '/', len_market_list, market_pair, "API called", datetime.utcnow().strftime('%H:%M:%S.%f'))
    first_df = pd.DataFrame(getTicks_result)
    first_df.set_index('T', inplace=True)

    for tk, interval in enumerate(time_series):
        if interval in first_df.index:
            master_bv_df.loc[market_pair, interval] = first_df.loc[interval,'BV']
            bv_sh.cell(row=mkt + 2, column=tk + 3).value = first_df.loc[interval,'BV']
            master_lp_df.loc[market_pair, interval] = first_df.loc[interval,'L']
            lp_sh.cell(row=mkt + 2, column=tk + 3).value = first_df.loc[interval,'L']
        else:
            master_bv_df.loc[market_pair, interval] = master_lp_df.loc[market_pair, interval]=0
            bv_sh.cell(row=mkt + 2, column=tk + 3).value = lp_sh.cell(row=mkt + 2, column=tk + 3).value=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...