【发布时间】:2015-10-28 13:29:26
【问题描述】:
我有一个关于表(表 A - 包含三个键的多个值和一些“值”列)的问题,具体如下:
ID TIME1 TIME2 VALUE_A VALUE_B 1 201501 201501 a 1a 1 201502 201502 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 时间1 时间2 1 201502 201502 2 201511 201511我已经设法通过简单的合并来取出我想要的值,它给出了我想要从表 A 中得到的值,给定的引用。但是,我也想使用“isin”功能来实现这一点。根据下面的语法,我有我的语法,它给了我重复的值。我唯一想要的是从表 B 中取出表 A 中的行,参考表 B。我怎样才能做到这一点?
表C如下:
ID TIME1 TIME2 VALUE_A VALUE_B 1 201502 201502 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] })提前非常感谢!
【问题讨论】:
-
对不起,我不清楚你的问题,你能发布想要的结果吗,据我所知,你的 isin 版本给出的结果与
df.merge(df2) -
我已经发布了“table c”作为我想从使用“isin”功能中得到的一个例子!