【发布时间】:2022-01-17 16:26:30
【问题描述】:
| C1 | C2 | C3 | C4 |
|---|---|---|---|
| A | 12 | True | 89 |
| 9 | False | 77 | |
| 5 | True | 23 | |
| B | 9 | True | 45 |
| 5 | True | 45 | |
| 2 | False | 78 | |
| C | 11 | True | 10 |
| 8 | False | 08 | |
| 12 | False | 09 |
C1 & C2 是多索引。我希望得到一个结果,它只给我 C1 中的值,这些值在 C2 中的值既低于 10 又大于或等于 10。
所以上表中C1-B应该去,最终结果应该是这样的:
| C1 | C2 | C3 | C4 |
|---|---|---|---|
| A | 12 | True | 89 |
| 9 | False | 77 | |
| 5 | True | 23 | |
| C | 11 | True | 10 |
| 8 | False | 08 | |
| 12 | False | 09 |
我试过 df.loc[(df.C2 = 10)] 但这没有用。
我也试过了:
filter1 = df.index.get_level_values('C2') = 10
df.iloc[filter1 & filter2]
我在另一篇同样无效的帖子中看到了建议。有谁知道如何解决这个问题?谢谢
【问题讨论】:
-
请提供您的数据框作为字典:
df.to_dict()。更容易复制 MultiIndex -
(df.C2 < 10 ) & (df.C2 >= 10)正确吗?因为它意味着所有的价值 -
@jazrael 这就是我想要的。值高于和低于的那些。不是刚好低于或高于。
标签: python pandas multi-index