首页 > 解决方案 > 如何从 Pandas 的数据框中选择匹配结果?

问题描述

我尝试使用熊猫在数据框中选择行,但不知何故我找不到类似的例子。解决方案应该很简单,但我有点卡住了。

  1. 有两个数据框kg_df
    source   edge     target
0   Jack     bought   apple     

mylist

    Unnamed            URL                        Length     Match Text
0   0           http://example.com/Alice             5        Alice
1   1           http://example.com/Finn              4        Finn
2   2           http://example.com/Jack              4        Jack

以上数据只是一个例子(一种情况)。每次我生成新数据时,数据框中的数据都是不同的。

  1. 我想从 中选择一行mylist,使用来自的值kg_df(即,两个数据帧中的 Jack 匹配),但我想做不同的操作,如果两个数据帧之间只有匹配,因为有时没有匹配(以上情况有匹配项,因为Jack出现在两个数据框中)。
obj = kg_df['source'].values[0]
objhit = mylist[mylist['Match Text'] == obj]
if len(objhit) == 1:
    objURI = objhit ['URL']
    object1 = URIref(objURI[2])

所以我检查了len == 1,但我很难获得object1。上面的代码之所以有效,是因为我指定了行号 ( objURI[2])。但是,我当然不知道是否找到了 objhit 的结果 [1] 或 [99]。在不知道行号的情况下,如何正确获取 object1?

非常感谢!

标签: pythonpandasdataframe

解决方案


我很困惑......你为什么不先加入两个表来找到共同的元素,然后根据需要应用掩码?

pd.merge(df1, df2, left_on='source', right_on='Match Text', how='inner')

推荐阅读