我试图在基于匹配的另一个数据帧的它的值的熊猫数据帧来选择行。最重要的是,我只想匹配行中的值,而不是贯穿整个系列。例如:Python的大熊猫 - 选择通过
df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[4, 5, 6]})
df2 = pd.DataFrame({'a':[3, 2, 1], 'b':[4, 5, 6]})
我想选择排在那里都“a”和“B”从DF1比赛中DF2任何行值。我曾尝试:
df1[(df1['a'].isin(df2['a'])) & (df1['b'].isin(df2['b']))]
这当然将返回所有行,因为所有的值出现在在某些时候DF2,但不一定在同一行。我如何限制这个值,以便测试'b'的值只是那些值为'a'的行?所以对于上面的例子,我期待只返回行索引1([2,5])。
请注意,数据帧可能具有不同的形状,并且包含多个匹配的行。
这工作,我从来没有会工作这一点我自己,谢谢。我很惊讶没有现有的熊猫功能来执行此操作。 – ssast
@ssast即使NumPy没有内置的这个。有一个非常相关的['问答'](http://stackoverflow.com/questions/38674027/find-the-row-indexes-of-several-values-in-a-numpy-array)研究其他更有效的解决方案找到行索引。那里看起来很好看! – Divakar