如果索引大于x,则删除数据框行

时间:2018-09-07 09:05:12

标签: python pandas

我要删除索引大于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 :(得分:1)

df= df[df.index < 13492] 

适用于这种情况

答案 1 :(得分:1)

如果您真的想使用放置,则可以借助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。