如何从Pandas中的数据帧中选择匹配结果?

2024-09-30 08:17:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

和{}:

    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. 我想使用kg_df中的值从mylist中选择一行(即,两个数据帧中的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])。但是,我当然不知道奥布希特的结果是[1]还是[99]。在不知道行号的情况下,如何正确获取object1

非常感谢


Tags: 数据comhttpurlsourcedfexamplematch
2条回答

我很困惑。。。为什么不先连接两个表以查找公共元素,然后根据需要应用掩码

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

这可以通过使用dataframe.merge来实现,如果在两个数据帧中都找到了结果,那么它将把_mergeresult显示为both

comparison_df = df.merge(df1, indicator=True, how='outer', left_on='source', right_on='Match Text')
print(comparison_df[(comparison_df['_merge']=='both')].URL)

此代码将为您提供datafram2中的URL字段

输出: 0http://example.com/Jack

相关问题 更多 >

    热门问题