我有一个多索引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
Run Code Online (Sandbox Code Playgroud)
我有另一个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
Run Code Online (Sandbox Code Playgroud)
我想使用第二个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
Run Code Online (Sandbox Code Playgroud)
最终,我只对真实的元素和它们的真实日期感兴趣.在迭代日期中真实的元素列表将是很好的,我通过制作False NaN然后使用dropNa()来做.
我知道我可以编写一堆嵌套for循环来做到这一点,但时间至关重要; 我想不出一种方法来使用pandas数据帧结构本质上和pythonically来做到这一点.任何帮助将非常感谢!