Удалить строки данных, если индекс больше x - PullRequest
0 голосов
/ 07 сентября 2018

Я хочу удалить строки данных, индекс которых больше 13491.

Я пытался

df.drop(df.index > [13491])

но получена ошибка

KeyError: 'labels [False False False ...  True  True  True] not contained in axis'

Этот отлично работает

df= df[df.index < 13492]

Но как удалить отфильтрованные строки из кадра данных?

Может кто-нибудь дать мне несколько советов? Спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Если вы действительно хотите использовать drop, вы можете определить строку с помощью numpy.where ()

import pandas as pd
import numpy as np

df = pd.DataFrame()

df["A"] = [1,2,3,4,5]
   A
0  1
1  2
2  3
3  4

#Remove if index bigger thans 2
df.drop(df.index[np.where(df.index > 2)[0]])
   A
0  1
1  2
2  3

Но ваш метод возврата df = df[df.index < some_value] тоже не должен быть плохим. Имейте в виду, что drop вернет измененный объект и не перезапишет старый. поэтому df = df.drop ... необходим для замены df в любом случае.

0 голосов
/ 07 сентября 2018
df= df[df.index < 13492] 

работает для этого случая

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