Панды - iterrows для Fillna () - PullRequest
       5

Панды - iterrows для Fillna ()

0 голосов
/ 31 августа 2018

У меня большой фрейм данных, по крайней мере, 500 строк и 60 столбцов. Давайте назовем это df1. В некоторых ячейках есть NaN, которые я обычно использовал

df2 = df1.fillna(value = 0.0)

чтобы заменить их всего одной строкой кода.

Но это с гораздо, намного меньшими фреймами данных, где это работало в прошлом, и я хотел бы реализовать тот же шаг для больших объемов данных в будущем. Использование вышеупомянутой команды выходит за пределы моего предела рекурсии. Я также пытался увеличить предел рекурсии, и в результате моя программа зависала.

Мой начальный предел рекурсии:

sys.getrecursionlimit()
1000

Затем увеличиваем его с

sys.setrecursionlimit(10000)

и запуск fillna() впоследствии приводит к сбою моей программы.

Чтобы обойти рекурсию и, скорее, заставить эту команду работать итеративно, я создал этот цикл:

for index, row in sdd_root_excel.iterrows():
       if(pd.isnull(row[index])):
             sdd_root_excel.iloc[index].fillna(0)

Но я получаю сообщение об ошибке, которое, по моей интерпретации, похоже на то, что оно говорит о том, что индекс (который равен 711?) Выходит за границы, и он также интерпретируется как KeyError:

Traceback (most recent call last):
  File "C:\Users\isabel.wingert\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3103, in get_value
    tz=getattr(series.dtype, 'tz', None))
  File "pandas\_libs\index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value
  File "pandas\_libs\index.pyx", line 114, in pandas._libs.index.IndexEngine.get_value
  File "pandas\_libs\index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
  File "pandas\_libs\hashtable_class_helper.pxi", line 1492, in pandas._libs.hashtable.PyObjectHashTable.get_item
  File "pandas\_libs\hashtable_class_helper.pxi", line 1500, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 711

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "C:\Users\isabel.wingert\Anaconda3\lib\site-packages\pandas\core\series.py", line 766, in __getitem__
    result = self.index.get_value(self, key)
  File "C:\Users\isabel.wingert\Anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3109, in get_value
    return libindex.get_value_box(s, key)
  File "pandas\_libs\index.pyx", line 55, in pandas._libs.index.get_value_box
  File "pandas\_libs\index.pyx", line 70, in pandas._libs.index.get_value_box
IndexError: index out of bounds

Нужно ли исправить мой цикл или попробовать что-нибудь еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...