Как удалить всю строчку вместе с индексом в pandas python
Всем привет, мне нужно полностью удалить строку 888 у объекта DataFrame. Как это сделать? Буду очень признателен.
0 3 7.2500 22.0 male
1 1 71.2833 38.0 female
2 3 7.9250 26.0 female
3 1 53.1000 35.0 female
4 3 8.0500 35.0 male
.. ... ... ... ...
886 2 13.0000 27.0 male
887 1 30.0000 19.0 female
888 3 23.4500 NaN female
889 1 30.0000 26.0 male
890 3 7.7500 32.0 male
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Исходный DF:
In [79]: df
Out[79]:
1 2 3 4
0
0 3 7.2500 22.0 male
1 1 71.2833 38.0 female
2 3 7.9250 26.0 female
3 1 53.1000 35.0 female
4 3 8.0500 35.0 male
886 2 13.0000 27.0 male
887 1 30.0000 19.0 female
888 3 23.4500 NaN female
889 1 30.0000 26.0 male
890 3 7.7500 32.0 male
удаляем строку/строки по значениям индекса:
способ 1:
df = df.drop(index=[888])
способ 2:
df = df.query("index not in [888]")
или:
df = df.query("index != 888")
результат:
In [81]: df
Out[81]:
1 2 3 4
0
0 3 7.2500 22.0 male
1 1 71.2833 38.0 female
2 3 7.9250 26.0 female
3 1 53.1000 35.0 female
4 3 8.0500 35.0 male
886 2 13.0000 27.0 male
887 1 30.0000 19.0 female
889 1 30.0000 26.0 male
890 3 7.7500 32.0 male
ответ-бонус:
можно как-то сделать индексирование по порядку?
df = df.reset_index(drop=True)
результат:
In [94]: df
Out[94]:
1 2 3 4
0 3 7.2500 22.0 male
1 1 71.2833 38.0 female
2 3 7.9250 26.0 female
3 1 53.1000 35.0 female
4 3 8.0500 35.0 male
5 2 13.0000 27.0 male
6 1 30.0000 19.0 female
7 1 30.0000 26.0 male
8 3 7.7500 32.0 male