Python Pandas str.obsahuje() s odkazy na řádky

0

Otázka

Mám dvě pandy datové části rámců tak jako:

df1

stránky odkaz
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteX https://www.retailer_siteX.com

df2

stránky odkaz
retailer_site1 https://www.retailer_site1.com
... ...
retailer_siteY https://www.retailer_siteY.com

Takže chci jít přes df2 a najít případy odkazy z df2 v df1. Tady je můj kód:

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

Při tisku boolean_findings, začínám být nepravdivé, což vím, že nemůže být pravda, protože jsem viděl zápasy lokálně na můj souborů aplikace excel:

boolean_findings
False
False
...
False

To, co chci vědět, je důvod, proč hypertextový odkaz string text není uzavřeno s je ekvivalent na první df, a co mám dělat, aby odpovídaly stránky.

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

Nejlepší odpověď

1

"Podíval jsem se a všiml si, že některé webové stránky mají ( a ) součástí jejich odkazy, které by mohly být háže odkazy

Zdá se, že potřebujete pouze účet pro alfanumerický/podtržení znaků při porovnávání odkazů, můžete použít

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

Na .str.replace(r'\W+','', regex=True) součástí bude odstranit všechny znaky jiné než písmena, diakritika, číslice a konektor interpunkce (nejčastější znak je podtržítko mezi nimi) z odkazů.

2021-10-23 10:27:53

Dostal jsem následující chybová pro regex v nahradit: TypeError: replace() takes no keyword arguments. Když jsem se odstranit regex=Trueto nemá chybu, ale to neznamená, vyměňte ji. Myslím, že se podívám do re modul se to vyřešit, ale díky za uvedení na správnou cestu!
G H

@GH ujistěte Se, že používáte nejnovější verze Pandy. pip install -U pandas. Tento kód byl testován proti své údaje a dokázal pracovat.
Wiktor Stribiżew

V jiných jazycích

Tato stránka je v jiných jazycích

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