Я хочу удалить все строки над строкой с указанным c значением в столбце. Если это значение c существует несколько раз, последнее совпадение определяет удаление. Фрейм данных выглядит следующим образом:
df =
A B C
0 Item1 20 5
1 Item2 84 0
2 Item3 93 1
3 Item4 50 0
4 Item5 40 3
5 Item6 1 12
Сначала я идентифицирую все строки со значением «0» в столбце C. Я беру последний. Затем я пытаюсь удалить все строки выше, включая совпадающую.
c_zero_rows = df[ df["C"] == 0 ] # get all rows with value "0" in C
last_c_zero_row = c_zero_rows.tail(1) # get last of this rows
remaining_rows = df [ df.index > last_c_zero_row.index] # remove all rows above
Мой желаемый результат должен выглядеть так:
remaining rows =
A B C
4 Item5 40 3
5 Item6 1 12
К сожалению, я получаю сообщение об ошибке:
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in cmp_method(self, other)
103 if isinstance(other, (np.ndarray, Index, ABCSeries, ExtensionArray)):
104 if other.ndim > 0 and len(self) != len(other):
--> 105 raise ValueError("Lengths must match to compare")
106
107 if is_object_dtype(self) and isinstance(other, ABCCategorical):
ValueError: Lengths must match to compare
Пробовал решить эту проблему уже несколькими способами. Как мне подойти к этому?