【问题标题】:How to fix this "Key Error:t" i got while i was writing a while loop?如何解决我在编写 while 循环时遇到的“关键错误:t”?
【发布时间】:2020-03-24 23:59:53
【问题描述】:

我写了这段代码,然后我在下面写了一个错误。有一个while循环可以让我获取受1000列限制的数据,就像我在reapeat_rounds变量中描述的那样,但是当我尝试使用该循环时,会出现“keyerror:t”。如果我做reapeat_rounds = 0,我没有收到这样的错误,但如果我这样做,则意味着 while 循环将无法工作,如果 while 循环有效,我会收到错误,请帮助我解决该错误,谢谢。

class Binance:

    def __init__(self):

        self.base = 'https://api.binance.com'

        self.endpoints = {
            "order": '/api/v3/order',
            "testOrder": '/api/v3/order/test',
            "allOrders": '/api/v3/allOrders',
            "klines": '/api/v3/klines',
            "exchangeInfo": '/api/v3/exchangeInfo'
        }

        self.headers = {"X-MBX-APIKEY": binance_keys['api_key']}

    def GetLongerSymbolData(self, symbol:str, interval:str, limit:int=1000, end_time=False):
        # Basicall, we will be calling the GetSymbolData as many times as we need 
        # in order to get all the historical data required (based on the limit parameter)
        # and we'll be merging the results into one long dataframe.

        repeat_rounds = 1
        if limit > 1000:
            repeat_rounds = int(limit/1000)
        initial_limit = limit % 1000
        if initial_limit == 0:
            initial_limit = 1000
        # First, we get the last initial_limit candles, starting at end_time and going
        # backwards (or starting in the present moment, if end_time is False)
        df = self.GetSymbolData(symbol, interval, limit=initial_limit, end_time=end_time)
        while repeat_rounds > 0:
            # Then, for every other 1000 candles, we get them, but starting at the beginning
            # of the previously received candles.
            df2 = self.GetSymbolData(symbol, interval, limit=1000, end_time=df['time'[0]])
            df = df2.append(df, ignore_index = True)
            repeat_rounds = repeat_rounds - 1

        return df

Data = Binance()

m = Data.GetLongerSymbolData('BTCUSDT','1h')

print(m)


Traceback (most recent call last):
  File "C:\Users\orhan\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc
    return self._engine.get_loc(key)
  File "pandas\_libs\index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 't'

During handling of the above exception, another exception occurred:


Traceback (most recent call last):
  File "c:/Users/orhan/Desktop/DW/Data.py", line 101, in <module>
    m = Data.GetLongerSymbolData('BTCUSDT','1h')
  File "c:/Users/orhan/Desktop/DW/Data.py", line 47, in GetLongerSymbolData
    df2 = self.GetSymbolData(symbol, interval, limit=1000, end_time=df['time'[0]])
  File "C:\Users\orhan\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", line 2980, in __getitem__
    indexer = self.columns.get_loc(key)
  File "C:\Users\orhan\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 2899, in get_loc
    return self._engine.get_loc(self._maybe_cast_indexer(key))
  File "pandas\_libs\index.pyx", line 107, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\index.pyx", line 131, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1607, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1614, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 't'

【问题讨论】:

    标签: python python-3.x pandas dataframe keyerror


    【解决方案1】:

    你不想换行吗

    df2 = self.GetSymbolData(symbol, interval, limit=1000, end_time=df['time'[0]])
    
    

    类似的东西

    df2 = self.GetSymbolData(symbol, interval, limit=1000, end_time=df['time'][0])
    

    ?

    在这里,[0] 应用于 'time' 字符串,这实际上只是将字符串 't' 作为 DataFrame 的键。

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 1970-01-01
      • 2015-12-16
      • 2010-09-07
      • 2017-02-22
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多