【发布时间】:2014-02-06 03:26:49
【问题描述】:
我有一个多索引 DataFrame,第一级作为组 ID,第二级作为元素名称。还有更多组,但下面只显示第一个组。
2000-01-04 2000-01-05
Group Element
1 A -0.011374 0.035895
X -0.006910 0.047714
C -0.016609 0.038705
Y -0.088110 -0.052775
H 0.000000 0.008082
我有另一个 DataFrame 只包含 1 个索引,即组 ID。两者的列相同,都是日期。
2000-01-04 2000-01-05
Group
1 -0.060623 -0.025429
2 -0.066765 -0.005318
3 -0.034459 -0.011243
4 -0.051813 -0.019521
5 -0.064367 0.014810
我想使用第二个 DataFrame 来过滤第一个 DataFrame,方法是检查每个元素是否小于该日期组的值以获得如下结果:
2000-01-04 2000-01-05
Group Element
1 A False False
X False False
C False False
Y True True
H False False
最终,我只对为真的元素和它们为真的日期感兴趣。在日期迭代中为真的元素列表会很棒,我已经通过制作 False NaN 然后使用 dropNa() 来做到这一点。
我知道我可以编写一堆嵌套的 for 循环来做到这一点,但时间至关重要;我想不出一种在本质上和 Python 上使用 pandas 数据框结构来做到这一点的方法。任何帮助将不胜感激!
【问题讨论】: