将数据帧与.eq()进行比较后获取索引

2024-06-07 13:05:03 发布

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

对于Web抓取应用程序,我将比较数据库中的一些数据和从网站中抓取的一些数据。我将数据保存在数据框的两个不同列中

比较很有效!我得到两列中具有相同值的行数。 但随着我的项目不断增长,我还想知道哪个索引的比较结果为真。我该怎么做

一些附加信息

我的数据帧:

df_single["Database"]:
Schloss Haindorf Hotelbetriebs GmbH
1. Aichfelder Druck Gesellschaft m.b.H.
Rössler Elektro Korbel
Elektro Schefbänker 
AWESOME X e.U.


df_single["Scraped"]:
Schloss Haindorf Hotelbetriebs GmbH
1. Aichfelder Druck Gesellschaft m.b.H.
Elektro Rössler OG
Elektro Schefbänker KG
AWESOME X e.U. 

我与.eq()的比较

same_single = df_single["Database"].str.lower().eq(df_single["Scraped"].str.lower()).sum()

我的输出:

[IN:] print(same_single)
[OUT:] 3

想要的输出:

[IN:] print(index where comparison = true)
[OUT:]Comparison was true at Index: 3,5 and 7

Tags: 数据dfdatabasegmbhsingledruckelektrogesellschaft
1条回答
网友
1楼 · 发布于 2024-06-07 13:05:03

首先通过掩码将索引值过滤到idx,然后使用分隔符将值连接在一起:

mask = df_single["Database"].str.lower().eq(df_single["Scraped"].str.lower())

idx = df_single.index[mask]

print (f"Comparison was true at Index: {', '.join(idx.astype(str))}")

或:

print ("Comparison was true at Index: {}".format(', '.join(idx.astype(str))))

相关问题 更多 >

    热门问题