簡體   English   中英

for 循環遍歷索引 len?

[英]for loop going over the index len?

我必須遍歷我的數據框維度的一個 len,我收到一個錯誤消息: ValueError: **153353** is not in range 如您所見,我的止損范圍是 153352-1。 即使我將其設置為 153351,我也會收到羞恥錯誤。 盡管出現錯誤,但我的namefiledict已填滿。 錯誤出現在最后一行(已填充)

#
namefile = []
for docs in list(df[0][0][0]):
    for allwav in docs:
        for onewavfile in allwav:
            namefile.append(onewavfile)


namefiledict = {}
for i in range(0, 153351,1):
    for name in namefile:
        namefiledict[name] = list(df[i][0])

我也試過for idx, name in enumerate(df):但這也會導致同樣的錯誤。

[更新] - - - - - - - - - - - - - - - - - - - - - - - - ---------------- ValueError Traceback(最近一次調用最后一次)~/anaconda3/envs/rpython/lib/python3.7/站點包/pandas/core/indexes/range.py in get_loc(self, key, method, tolerance) 375 try: --> 376 return self._range.index(new_key) 377 除了 ValueError:

ValueError: 153353 is not in range

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-13-30d2f7a02ddf> in <module>
      4 for i in range(0, 153351,1):
      5     for name in namefile:
----> 6         namefiledict[name] = list(df[i][0])
      7         i+=1

~/anaconda3/envs/rpython/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key)
   2993             if self.columns.nlevels > 1:
   2994                 return self._getitem_multilevel(key)
-> 2995             indexer = self.columns.get_loc(key)
   2996             if is_integer(indexer):
   2997                 indexer = [indexer]

~/anaconda3/envs/rpython/lib/python3.7/site-packages/pandas/core/indexes/range.py in get_loc(self, key, method, tolerance)
    376                 return self._range.index(new_key)
    377             except ValueError:
--> 378                 raise KeyError(key)
    379         return super().get_loc(key, method=method, tolerance=tolerance)
    380 

KeyError: 153353

代碼的最后一行將i增加一。 這就是循環結束的原因,因為i已經被for-loop邏輯遞增了。 您需要刪除此行。

當使用這種形式的 for 語句時,你讓 python 處理遞增。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM