有一个包含以下数据的数据框df
:
+------+----------+-------+
| YEAR | CATEGORY | GRADE |
+------+----------+-------+
| 1999 | A | 3.5 |
| 1999 | A | 7.2 |
| 1999 | B | 0.2 |
| 1999 | B | 6.4 |
| 2000 | A | 1.4 |
| 2000 | A | 2.5 |
| 2000 | B | 3.3 |
| 2000 | B | 8.4 |
+------+----------+-------+
并且有一个包含通过分数的多索引系列s
:
YEAR CATEGORY
1999 A 5.2
B 5.1
2000 A 3.7
B 6.1
dtype: float64
因此,我想过滤df
上的行,使GRADE
大于s
上的值,其结果如下所示:
+------+----------+-------+
| YEAR | CATEGORY | GRADE |
+------+----------+-------+
| 1999 | A | 7.2 |
| 1999 | B | 6.4 |
| 2000 | B | 8.4 |
+------+----------+-------+
如何继续获得此结果?
谢谢!
答案 0 :(得分:4)
set_index
并结合使用gt
和boolean来过滤df
yourdf=df[df.set_index(['YEAR','CATEGORY']).GRADE.gt(s).values]
yourdf
YEAR CATEGORY GRADE
1 1999 A 7.2
3 1999 B 6.4
7 2000 B 8.4