Удаление строк из Python Dataframe с условием - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь удалить несколько строк из огромного набора данных в Пандах. Я решил использовать функцию iterrows () для поиска индексов для удаления (поскольку я знаю, что удаление во время итерации - плохая идея). Прямо сейчас это выглядит так:

list_to_delete = []
rows_to_delete = {}
for index, row in train.iterrows():
    if <some conditions>:
        list_to_delete.append(int(index))
        rows_to_delete[int(index)] = row
train = train.drop([train.index[i] for i in list_to_delete])

Это дает мне такую ​​ошибку:

Traceback (most recent call last):
  File "C:/Users/patka/PycharmProjects/PARSER/getStatistics.py", line 115, in <module>
    train = train.drop([train.index[i] for i in list_to_delete])
  File "C:/Users/patka/PycharmProjects/PARSER/getStatistics.py", line 115, in <listcomp>
    train = train.drop([train.index[i] for i in list_to_delete])
  File "C:\Users\patka\PycharmProjects\PARSER\venv\lib\site-packages\pandas\core\indexes\base.py", line 3958, in __getitem__
    return getitem(key)
IndexError: index 25378 is out of bounds for axis 0 with size 25378

Как это возможно?

Перед этим я создал копию этого набора данных и попытался удалить выбранные строки из этой копии, повторяя при этом исходную (с inplace = True). К сожалению, произошла ошибка, указав, что объект NoneType не имеет атрибута drop.

Буду очень признателен за вашу помощь. Мой пример строки выглядит так:

resolution Done 
priority Major 
created 2000-07-04T13:13:52.000+0200 
status Resolved 
Team XBee 
changelog {'Team" : {'from':...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...