[英]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.