Python Pandy str.obsahuje() s hypertextové odkazy v radoch

0

Otázka

Mám dve pandy dataframes tak ako:

df1

lokalita odkaz
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteX https://www.retailer_siteX.com

df2

lokalita odkaz
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteY https://www.retailer_siteY.com

Tak som chcel ísť cez df2 a nájsť prípady odkazy z df2 v df1. Tu je môj kód:

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

Keď som tlače boolean_findings, vypisuje všetky falošné, ktoré viem, že nemôže byť pravda, pretože som videl zápasy lokálne na moje súbory programu excel:

boolean_findings
False
False
...
False

To, čo chcem vedieť, prečo hypertextové prepojenie, string text nie je zhodné s jeho ekvivalent na prvý df, a čo môžete urobiť, aby zodpovedali stránky.

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

Najlepšiu odpoveď

1

"Som sa pozrieť a všimol si niektoré webové stránky majú ( a ) súčasťou ich prepojenia, ktoré by mohli byť hádzanie mimo odkazy

Zdá sa, stačí si len účet pre alfanumerický/podčiarknutia písmená pri porovnávaní odkazy, môžete použiť

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

Na .str.replace(r'\W+','', regex=True) súčasťou bude odstrániť všetky písmená iné ako listy, diakritiky, číslice a konektor interpunkčné znamienka (najčastejšie char je podčiarknutia medzi nimi) z odkazy.

2021-10-23 10:27:53

Dostal som nasledovné chybové pre regulárny výraz v replace: TypeError: replace() takes no keyword arguments. Keď som odstrániť regex=True, to nie je chyba, ale to nie je nahradiť to buď. Myslím, že sa budem pozerať do re modul ak chcete zoradiť to von, ale vďaka za uvedenie ma na správnu cestu!
G H

@GH uistite sa, že používate najnovšiu Pandy verziu. pip install -U pandas. Tento kód bol testovaný proti vašich údajov a ukázalo sa, že pracuje.
Wiktor Stribiżew

V iných jazykoch

Táto stránka je v iných jazykoch

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