【发布时间】:2021-03-04 22:26:42
【问题描述】:
我有以下数据框:
>>> mes1 mes2 mes3 mes4 mes5
A1 0.45 0.21 0.53 0.33 0.11
A2 0.44 0.32 0.11 0.38 0.91
A3 0.78 0.31 0.53 0.32 0.14
A4 0.12 0.33 0.56 0.43 0.12
posUp 0.52 0.40 0.62 0.48 0.54
posDown 0.32 0.15 0.45 0.24 0.05
我想归档我的数据框,所以我只剩下 rows,它们的值在所有列的“posUp”和“posDown”值之间,所以结果应该是:
>>> mes1 mes2 mes3 mes4 mes5
A1 0.45 0.21 0.53 0.33 0.11
posUp 0.52 0.40 0.62 0.48 0.54
posDown 0.32 0.15 0.45 0.24 0.05
我试图通过将数据框切成系列然后放置这样的条件来做到这一点:
for i in df:
db=df[i]
vmin=db.loc['posUp']
vmax=db.loc['posDown']
db=db[(db>vmin)&(db<vmax)]
然后我想删除在最后一个 db 过滤器中找不到的行,但它没有过滤任何内容,当我打印 db 时,我得到“Series([],Name: ...” 除此之外,我相信有比 for 循环更方便/有效的方法。
所以我的最终目标是只有在所有列中的行,它们的值在 posUp 和 posDown 之间。
【问题讨论】: