Python Pandalar str.satırlarda köprüler içeren contains()

0

Soru

Bunun gibi iki panda veri çerçevem var:

df1

site bağlantı
perakendeci_site1 https://www.retailer_site1.com
... ...
Perakendeci_sitex https://www.retailer_siteX.com

df2

site bağlantı
perakendeci_site1 https://www.retailer_site1.com
... ...
Retailer_siteyname https://www.retailer_siteY.com

Bu yüzden df2'den geçmek ve df1'deki df2'den bağlantı örneklerini bulmak istiyorum. İşte kodum:

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

Boolean_findings yazdırdığımda, tüm yanlışları alıyorum, bunun doğru olamayacağını biliyorum çünkü excel dosyalarımda yerel olarak eşleşmeler görüyorum:

boolean_findings
Sahte
Sahte
...
Sahte

Bilmek istediğim, köprü dizesi metninin neden ilk df'deki eşdeğeriyle eşleştirilmediği ve siteleri eşleştirmek için ne yapabilirim.

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

En iyi cevabı

1

"Bir göz attım ve bazı web sitelerinin bir ( ve ) bağlantılarına dahil edildi, bu da bağlantıları atıyor olabilir

Bağlantıları karşılaştırırken yalnızca alfasayısal / alt çizgi karakterlerini hesaba katmanız gerekiyor gibi görünüyor, şunları kullanabilirsiniz

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

Bu .str.replace(r'\W+','', regex=True) bölüm, harf, aksan, rakam ve bağlayıcı noktalama işaretleri dışındaki tüm karakterleri (aralarında en yaygın karakter alt çizgidir) bağlantılardan kaldıracaktır.

2021-10-23 10:27:53

Değiştirmede regex için aşağıdaki hatayı aldım: TypeError: replace() takes no keyword arguments. Ben kaldırdığımda regex=True hata yapmaz, ancak yerini de almaz. Sanırım içine bakacağım re bunu çözmek için modül, ama beni doğru yola soktuğun için teşekkürler!
G H

@GH Pandaların en son sürümünü kullandığınızdan emin olun. pip install -U pandas. Bu kod verilerinize karşı test edilmiş ve çalıştığı kanıtlanmıştır.
Wiktor Stribiżew

Diğer dillerde

Bu sayfa diğer dillerde

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