Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中用字符串匹配替换值?_Python_Python 3.x_Pandas_Python 2.7 - Fatal编程技术网

在python中用字符串匹配替换值?

在python中用字符串匹配替换值?,python,python-3.x,pandas,python-2.7,Python,Python 3.x,Pandas,Python 2.7,df: 输出: Item_Key Item_Name Delivery_Partner Ex_Delivery_Partner 10001 Brush zen zen and company 10002 sandle randv randv ltd 10003 chemical ABC zen and company 10004

df:

输出:

Item_Key   Item_Name   Delivery_Partner    Ex_Delivery_Partner
10001      Brush       zen                 zen and company
10002      sandle      randv               randv ltd
10003      chemical    ABC                 zen and company
10004      chair       hank                hank solution
10005      shoes       zen                 tour and zen ltd
10006      shoes       XYZ                 tour and zen ltd
10007      ropes       delv.com            delv.com
10008      ropes       hans ltd            delv.com and Enterprises
我需要通过在“Ex_Delivery_Partner”中选中名称来替换“Delivery_Partner”名称。
如果没有字符串匹配,则替换为“Ex_Delivery_Partner”。

通过或列表理解中的
语句中的
测试两列之间的成员资格,然后通过或设置新值:



我已经更新了这个问题,请调查一下,如果我需要“Delivery\u Partner”的短名称(用于其他项目),该怎么办。
Item_Key   Item_Name   Delivery_Partner    Ex_Delivery_Partner
10001      Brush       zen                 zen and company
10002      sandle      randv               randv ltd
10003      chemical    zen                 zen and company
10004      chair       hank                hank solution
10005      shoes       zen                 tour and zen ltd
10006      shoes       zen                 tour and zen ltd
10007      ropes       delv.com            delv.com 
10008      ropes       delv.com            delv.com and Enterprises   
mask = df.apply(lambda x: x['Delivery_Partner'] in x['Ex_Delivery_Partner'], 1)

df['Delivery_Partner'] = df['Delivery_Partner'].where(mask, df['Ex_Delivery_Partner'])
print (df)
   Item_Key Item_Name  Delivery_Partner Ex_Delivery_Partner
0     10001     Brush               zen     zen and company
1     10002    sandle             randv           randv ltd
2     10003  chemical   zen and company     zen and company
3     10004     chair              hank       hank solution
4     10005     shoes               zen    tour and zen ltd
5     10006     shoes  tour and zen ltd    tour and zen ltd
6     10007     ropes          delv.com            delv.com
mask = [x not in y for x, y in df[['Delivery_Partner', 'Ex_Delivery_Partner']].to_numpy()]

df.loc[mask, 'Delivery_Partner'] = df['Ex_Delivery_Partner']
print (df)
   Item_Key Item_Name  Delivery_Partner Ex_Delivery_Partner
0     10001     Brush               zen     zen and company
1     10002    sandle             randv           randv ltd
2     10003  chemical   zen and company     zen and company
3     10004     chair              hank       hank solution
4     10005     shoes               zen    tour and zen ltd
5     10006     shoes  tour and zen ltd    tour and zen ltd
6     10007     ropes          delv.com            delv.com