python – 使用Pandas“isin”-syntax进行子集选择
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用Pandas“isin”-syntax进行子集选择,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2045字,纯文字阅读大概需要3分钟。
内容图文
![python – 使用Pandas“isin”-syntax进行子集选择](/upload/InfoBanner/zyjiaocheng/726/5b3ef185358242a8b768b3c4afecaa83.jpg)
我有一个关于表的问题(表A – 包含三个键和一些“值”列的多个值),如下所示:
ID TIME1 TIME2 VALUE_A VALUE_B 1 201501 201501 a 1a 1 201502 201502 a 1c 1 201502 201502 b 1d 1 201501 201501 b 2e 1 201501 201501 b 6a 1 201501 201501 b 1d 1 201502 201502 b 2e 1 201502 201502 b 6a
我使用了一个代码从另一个表创建唯一值,在给定键的情况下获取我想要从表A中提取的行的引用.该表(表B)具有如下外观:
ID TIME1 TIME2 1 201502 201502 2 201511 201511
我已经设法通过执行一个简单的合并来取出我想要的值,该合并在给定引用的情况下从表A给出我想要的值.但是,我想使用“isin”函数来实现这一点.我根据下面的语法,它给了我重复的值.我唯一想要的是从表B中取出表中的行,参考表B.我如何设法做到这一点?
表C根据如下:
ID TIME1 TIME2 VALUE_A VALUE_B 1 201502 201502 a 1c 1 201502 201502 b 1d 1 201502 201502 b 2e 1 201502 201502 b 6a
语法( “ISIN” -version):
subset = df[df.ID.isin(df2['ID']) & (df.TIME1.isin(df2['TIME1']) & df.TIME2.isin(df2['TIME2']))]
创建表A和表B的代码如下:
df = DataFrame({'ID' : [1,1,1,1,1,1,1,1], 'TIME1' : [201501,201502,201502,201501,201501,201501,201502,201502], 'TIME2' : [201501,201502,201502,201501,201501,201501,201502,201502], 'VALUE_A' : ['a', 'a', 'b', 'b', 'b', 'b', 'b', 'b'], 'VALUE_B' : ['1a', '1c', '1d', '2e', '6a', '1d', '2e', '6a']}) df2 = DataFrame({'ID' : [1,2], 'TIME1' : [201502,201501], 'TIME2' : [201502,201501] })
提前谢谢了!
解决方法:
我相信你想修改你的布尔条件:
In [146]:
subset = df[df.ID.isin(df2['ID']) & (df.TIME1.isin(df2['TIME1']) | df.TIME2.isin(df2['TIME2'])) ]
subset
Out[146]:
ID TIME1 TIME2 VALUE_A VALUE_B
1 1 201502 201-02 a 1c
2 1 201502 201502 b 1d
6 2 201511 201511 b 2e
7 2 201511 201511 b 6a
因此,这将检查ID是否存在以及Time1或Time2是否在另一个df中.
内容总结
以上是互联网集市为您收集整理的python – 使用Pandas“isin”-syntax进行子集选择全部内容,希望文章能够帮你解决python – 使用Pandas“isin”-syntax进行子集选择所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。