python – 使用另一个DataFrame过滤Pandas DataFrame
发布时间:2020-05-25 09:24:07 所属栏目:Python 来源:互联网
导读:我有一个多索引DataFrame,第一级作为组ID,第二级作为元素名.还有更多的组,但下面只显示了第一组. 2000-01-04 2000-01-05 Group Element 1 A -0.011374 0.035895 X -0.006910
|
我有一个多索引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循环来做到这一点,但时间至关重要;我想不出一种方法来使用pandas数据帧结构本质上和pythonically来做到这一点.任何帮助将非常感谢! 解决方法您可以使用groupby申请:In [11]: g = df1.groupby(level='Group')
In [12]: g.apply(lambda x: x <= df2.loc[x.name])
Out[12]:
2000-01-04 2000-01-05
Group Element
1 A False False
X False False
C False False
Y True True
H False False (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
