您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 使用另一个DataFrame过滤Pandas DataFrame

5b51 2022/1/14 8:20:19 python 字数 2232 阅读 436 来源 www.jb51.cc/python

我有一个多索引DataFrame,第一级作为组ID,第二级作为元素名.还有更多的组,但下面只显示了第一组. 2000-01-04 2000-01-05 Group Element 1 A -0.011374 0.035895 X -0.006910

概述

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来做到这一点.任何帮助将非常感谢!

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

总结

以上是编程之家为你收集整理的python – 使用另一个DataFrame过滤Pandas DataFrame全部内容,希望文章能够帮你解决python – 使用另一个DataFrame过滤Pandas DataFrame所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶