我的数据框(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)
有人能帮助我吗? 谢谢!
答案 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)]