I have df and I want to replace values there
df = pd.read_csv('visits_april.csv')
df1 = pd.read_csv('participants.csv')`
url, date
aliexpress.com/payment/payment-result.htm... 2016-04-30 22:57:41
shoppingcart.aliexpress.com/order/confirm_orde... 2016-04-30 23:05:21
shoppingcart.aliexpress.com/order/confirm_orde... 2016-04-30 23:05:33
shoppingcart.aliexpress.com/order/confirm_orde... 2016-04-30 23:11:37
aliexpress.com/payment/payment-result.htm... 2016-04-30 23:12:07
shoppingcart.aliexpress.com/order/confirm_orde... 2016-04-30 23:15:31
shoppingcart.aliexpress.com/order/confirm_orde... 2016-04-30 23:15:37
aliexpress.com/payment/payment-result.htm... 2016-04-30 23:16:13
kupivip.ru/shop/checkout/confirmation 2016-04-30 23:18:15
if string from df
contain string from df2
I want to replace it to string from df2
visits
aliexpress.com
ozon.ru
wildberries.ru
lamoda.ru
mvideo.ru
eldorado.ru
ulmart.ru
ebay.com
kupivip.ru
Desire output
url
aliexpress.com
aliexpress.com
aliexpress.com
aliexpress.com
aliexpress.com
aliexpress.com
aliexpress.com
aliexpress.com
kupivip.ru
I try df[df['url'].isin(df2['visits'])]
but it return Empty DataFrame
.
You can extract
joined list with |
(regex or
) from column visits
by tolist
:
L = df2.visits.tolist()
print (L)
['aliexpress.com', 'ozon.ru', 'wildberries.ru', 'lamoda.ru',
'mvideo.ru', 'eldorado.ru', 'ulmart.ru', 'ebay.com', 'kupivip.ru']
print (df.url.str.extract('(' + '|'.join(L) + ')', expand=False))
0 aliexpress.com
1 aliexpress.com
2 aliexpress.com
3 aliexpress.com
4 aliexpress.com
5 aliexpress.com
6 aliexpress.com
7 aliexpress.com
8 kupivip.ru
Name: url, dtype: object
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.