Python Pandas str.contains() avec les liens hypertexte dans les lignes

0

La question

J'ai deux pandas dataframes comme suit:

df1

site lien
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteX https://www.retailer_siteX.com

df2

site lien
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteY https://www.retailer_siteY.com

Donc je veux aller à travers df2 et trouver les instances de liens à partir de df2 en df1. Voici mon code:

    for row in df2['link'].astype(str):
        boolean_findings = df1['link'].str.contains(row)

Quand j'ai l'impression boolean_findings, je suis de tout faux, ce qui je sais ne peut pas être vrai parce que je vais voir des matchs localement sur mes fichiers excel:

boolean_findings
Faux
Faux
...
Faux

Ce que je veux savoir, c'est pourquoi le lien hypertexte chaîne de texte n'est pas compensée avec son équivalent sur la première df, et que puis-je faire pour correspondre à la sites.

dataframe hyperlink pandas python
2021-10-22 22:50:57
1

La meilleure réponse

1

"J'ai pris un coup d'oeil et remarqué que certains sites web ont un ( et ) inclus dans leurs liens, ce qui peut être jeter en dehors des liens

Il semble que vous avez besoin de compte uniquement pour alphanumériques/trait de soulignement caractères lorsque l'on compare les liens, vous pouvez utiliser

df2["link"].str.replace(r'\W+','', regex=True).isin(
    df1["link"].str.replace(r'\W+','', regex=True))

L' .str.replace(r'\W+','', regex=True) la partie va supprimer tous les caractères autres que des lettres, des signes diacritiques, des chiffres et le connecteur de la ponctuation (les plus courantes char est à souligner, entre autres) à partir des liens.

2021-10-23 10:27:53

J'ai obtenu l'erreur suivante pour les regex dans le remplacer: TypeError: replace() takes no keyword arguments. Quand j'enlève le regex=Trueil ne fait pas d'erreur, mais il ne remplace pas non plus. Je pense que je vais regarder dans le re module de régler cette question, mais merci de me mettre sur le droit chemin!
G H

@GH assurez-vous d'utiliser la dernière Pandas version. pip install -U pandas. Ce code a été testé par rapport à vos données et prouvé de travail.
Wiktor Stribiżew

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................