如何删除值在一个范围内的数据帧的行?

时间:2018-03-09 15:38:09

标签: python pandas dataframe

我的数据框(df)的第一列是得分。我想删除分数>& 20&的行。 < 50

我正在使用以下代码来执行此操作:

df = df.drop(df[(df.score < 50) & (df.score > 20)].index)

但我想删除引用列号而不是列名的行:

此代码无效:

df = df.drop(df[(df.columns[0] < 50) & (df.columns[0] > 20)].index)

有人能帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

直截了当,使用loc/iloc

v = df.iloc[:, 0]  # v = df.loc[:, df.columns[0]]
df = df[~((v > 20) & (v < 50))]

使用pd.Series.between的清洁方法:

df = df[~df.iloc[:, 0].between(20, 50, inclusive=False)]