Я пытаюсь реализовать алгоритм, в котором данная матрица (матрица представляет городов) должны быть уменьшены условием:изменить значение в приведенных матричных панд
здесь матрица (кадр данных матрицы):
0 1 2 3 4
0 9992 1 0 2 0
1 2 99991 5 0 0
2 0 4 9992 0 1
3 3 0 1 9991 2
4 1 0 2 2 99989
затем условие я удалить 0-строку и 2-столбец в матрице, так что я получаю это:
df = df.drop(2,axis=1)
df = df.drop(0,axis=0)
reducedMatrix=df
print reducedMatrix
0 1 3 4
1 2 99991 0 0
2 0 4 0 1
3 3 0 9991 2
4 1 0 2 99989
и после удаления я должен изменить количество элемента (2,0) к большому числу литий KE 9999, я:
reducedMatrix[2][0]=9999
но получаю ошибку
File "", line 81, in <module>
reducedMatrix[2][0]=999
File "", line 1997, in __getitem__
return self._getitem_column(key)
File "", line 2004, in _getitem_column
return self._get_item_cache(key)
File "/", line 1350, in _get_item_cache
values = self._data.get(item)
File "/anaconda/lib/python2.7/site-packages/pandas/core/internals.py", line 3290, in get
loc = self.items.get_loc(item)
File "anaconda/lib/python2.7/site-packages/pandas/indexes/base.py", line 1947, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas/index.c:4154)
File "pandas/index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas/index.c:4018)
File "pandas/hashtable.pyx", line 303, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6610)
File "pandas/hashtable.pyx", line 309, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6554)
KeyError: 2
это imortant, чтобы сохранить перевалы и строк имен, так как после удаления строки я и столбец J я должен изменить значение в J, I позиция в новой матрице ожидаемый выход:
print reducedMatrix
0 1 3 4
1 2 99991 0 0
2 9999 4 0 1
3 3 0 9991 2
4 1 0 2 99989
как избежать этого? thx
Вы можете попробовать: 'reducedMatrix.set_value (2, 0, 9999) '? –
@NickilMaveli Я пробовал это, и это сработало! Большое спасибо, спасли мой день. –