python – 使用Pandas“isin”-syntax进行子集选择

我有一个关于表的问题(表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中.

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...