简体   繁体   English

熊猫:替换列中的值

[英]Pandas: replace values in column

I have df and I want to replace values there 我有df,我想在那里替换值

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 如果df中的字符串包含df2中的字符串,我想将其替换为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 . 我尝试df[df['url'].isin(df2['visits'])]但它返回Empty DataFrame

You can extract joined list with | 您可以使用| extract联接列表| (regex or ) from column visits by tolist : (正则表达式or )来自tolistvisits

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM