Python Pandas str.contém() com hiperlinks em linhas

0

Pergunta

Eu tenho dois pandas dataframes assim:

df1

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

df2

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

Então eu quero passar df2 e encontrar instâncias de links de df2 em df1. Aqui está o meu código:

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

Quando eu impressão boolean_findings, eu estou ficando tudo falso, que eu sei que não pode ser verdade porque eu estou vendo jogos localmente em meus arquivos do excel:

boolean_findings
Falso
Falso
...
Falso

O que eu quero saber é por que o hiperlink seqüência de caracteres de texto não está sendo correspondido com a sua equivalente no primeiro df, e o que posso fazer para corresponder os sites.

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

Melhor resposta

1

"Eu dei uma olhada e notei alguns sites possuem um ( e ) incluído em suas ligações, o que pode estar jogando fora as ligações

Parece que você precisa de apenas caracteres alfanuméricos/sublinhado de caracteres quando se comparam os links, você pode usar

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

O .str.replace(r'\W+','', regex=True) parte irá remover quaisquer caracteres diferentes de letras, sinais diacríticos, dígitos e o conector de pontuação (mais comum char é sublinhado entre eles) a partir dos links.

2021-10-23 10:27:53

Eu tenho o seguinte erro para regex em substituir: TypeError: replace() takes no keyword arguments. Quando eu remover o regex=True, não é de erro, mas não substituí-lo. Eu acho que eu vou olhar para o re módulo para resolver isso, mas obrigado por me colocar no caminho certo!
G H

@GH certifique-se de usar a última Pandas versão. pip install -U pandas. Este código foi testado contra os seus dados e provou de trabalho.
Wiktor Stribiżew

Em outros idiomas

Esta página está em outros idiomas

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