편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.02.09

    networkx 사용을 위한 코딩 중에 발생한 get_loc keyerror


    for connection_id, connection in connections.iterrows():
        station1_name = stations.loc[connection['station1']]['name']
        station2_name = stations.loc[connection['station2']]['name']
        graph.add_edge(station1_name, station2_name, time = connection['time'])
    

    이 코드를 입력했는데 원래는 loc가 아니라 ix였는데 이게 없어졌다고해서 loc로 수정했습니다. 근데 아래와 같은 keyerror 오류가 뜨는데 어떻게 해결해야할까요.

    KeyError                                  Traceback (most recent call last)
    ~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
       2645             try:
    -> 2646                 return self._engine.get_loc(key)
       2647             except KeyError:
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()
    
    KeyError: 1239.0
    
    During handling of the above exception, another exception occurred:
    
    KeyError                                  Traceback (most recent call last)
    <ipython-input-19-90fd5b137e7c> in <module>
          1 for connection_id, connection in connections.iterrows():
          2     station1_name = stations.loc[connection['station1']]['name']
    ----> 3     station2_name = stations.loc[connection['station2']]['name']
          4     graph.add_edge(station1_name, station2_name, time = connection['time'])
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key)
       1766 
       1767             maybe_callable = com.apply_if_callable(key, self.obj)
    -> 1768             return self._getitem_axis(maybe_callable, axis=axis)
       1769 
       1770     def _is_scalar_access(self, key: Tuple):
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_axis(self, key, axis)
       1963         # fall thru to straight lookup
       1964         self._validate_key(key, axis)
    -> 1965         return self._get_label(key, axis=axis)
       1966 
       1967 
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in _get_label(self, label, axis)
        623             raise IndexingError("no slices here, handle elsewhere")
        624 
    --> 625         return self.obj._xs(label, axis=axis)
        626 
        627     def _get_loc(self, key: int, axis: int):
    
    ~\anaconda3\lib\site-packages\pandas\core\generic.py in xs(self, key, axis, level, drop_level)
       3535             loc, new_index = self.index.get_loc_level(key, drop_level=drop_level)
       3536         else:
    -> 3537             loc = self.index.get_loc(key)
       3538 
       3539             if isinstance(loc, np.ndarray):
    
    ~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
       2646                 return self._engine.get_loc(key)
       2647             except KeyError:
    -> 2648                 return self._engine.get_loc(self._maybe_cast_indexer(key))
       2649         indexer = self.get_indexer([key], method=method, tolerance=tolerance)
       2650         if indexer.ndim > 1 or indexer.size > 1:
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()
    
    pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()
    
    KeyError: 1239
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.02.09

    networkx중 발생한 keyerror


    for connection_id, connection in connections.iterrows():
        station1_name = stations.loc[connection['station1']]['name']
        station2_name = stations.loc[connection['station2']]['name']
        graph.add_edge(station1_name, station2_name, time = connection['time'])
    

    이 코드를 입력했는데 원래는 loc가 아니라 ix였는데 이게 없어졌다고해서 loc로 수정했습니다. 근데 아래와 같은 keyerror 오류가 뜨는데 어떻게 해결해야할까요 ㅜㅜㅜㅜ

    KeyError                                  Traceback (most recent call last)
    ~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
       2645             try:
    -> 2646                 return self._engine.get_loc(key)
       2647             except KeyError:
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()
    
    KeyError: 1239.0
    
    During handling of the above exception, another exception occurred:
    
    KeyError                                  Traceback (most recent call last)
    <ipython-input-19-90fd5b137e7c> in <module>
          1 for connection_id, connection in connections.iterrows():
          2     station1_name = stations.loc[connection['station1']]['name']
    ----> 3     station2_name = stations.loc[connection['station2']]['name']
          4     graph.add_edge(station1_name, station2_name, time = connection['time'])
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in __getitem__(self, key)
       1766 
       1767             maybe_callable = com.apply_if_callable(key, self.obj)
    -> 1768             return self._getitem_axis(maybe_callable, axis=axis)
       1769 
       1770     def _is_scalar_access(self, key: Tuple):
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in _getitem_axis(self, key, axis)
       1963         # fall thru to straight lookup
       1964         self._validate_key(key, axis)
    -> 1965         return self._get_label(key, axis=axis)
       1966 
       1967 
    
    ~\anaconda3\lib\site-packages\pandas\core\indexing.py in _get_label(self, label, axis)
        623             raise IndexingError("no slices here, handle elsewhere")
        624 
    --> 625         return self.obj._xs(label, axis=axis)
        626 
        627     def _get_loc(self, key: int, axis: int):
    
    ~\anaconda3\lib\site-packages\pandas\core\generic.py in xs(self, key, axis, level, drop_level)
       3535             loc, new_index = self.index.get_loc_level(key, drop_level=drop_level)
       3536         else:
    -> 3537             loc = self.index.get_loc(key)
       3538 
       3539             if isinstance(loc, np.ndarray):
    
    ~\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
       2646                 return self._engine.get_loc(key)
       2647             except KeyError:
    -> 2648                 return self._engine.get_loc(self._maybe_cast_indexer(key))
       2649         indexer = self.get_indexer([key], method=method, tolerance=tolerance)
       2650         if indexer.ndim > 1 or indexer.size > 1:
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()
    
    pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()
    
    pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()
    
    KeyError: 1239