为了账号安全,请及时绑定邮箱和手机立即绑定

如果列字符串值是另一列的子字符串,如何替换它

如果列字符串值是另一列的子字符串,如何替换它

噜噜哒 2021-06-30 13:23:27
如何使用另一列替换列的部分字符串值。我这里的数据集是:ID          Product Name                            Size ID    Size Name1   24 Mantra Ancient Grains Foxtail Millet 500 gm      1       500 gm2   24 Mantra Ancient Grains Little Millet 500 gm       2       500 gm3   24 Mantra Naturals Almonds 100 gm                   3       100 gm4   24 Mantra Naturals Kismis 100 gm                    4       100 gm5   24 Mantra Organic Ajwain 100 gm                     5       100 gm6   24 Mantra Organic Apple Blast Drink 250 ml          6       250 ml7   24 Mantra Organic Apple Juice 1 Ltr Tetra Pack      7       1000 ml8   24 Mantra Organic Apple Juice 200 ml                8       200 ml9   24 Mantra Organic Assam Tea 100 gm                  9       100 gm这里的要求是Product Name列值是24 Mantra Ancient Grains Foxtail Millet 500 gm,Size Name列有500 Gm。在这种情况下,我的输出将是24 Mantra Ancient Grains Foxtail Millet. 如果Size Name包含在Product Name字符串中删除大小名称字忽略大小写否则无需采取任何行动。
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

IIUC,您可以使用apply()和replace():


df['Product Name'] = df.apply(lambda x: x['Product Name'].replace(x['Size Name'], '').strip(), axis=1)

产量:


   ID                                    Product Name  Size ID Size Name

0   1         24 Mantra Ancient Grains Foxtail Millet        1    500 gm

1   2          24 Mantra Ancient Grains Little Millet        2    500 gm

2   3                      24 Mantra Naturals Almonds        3    100 gm

3   4                       24 Mantra Naturals Kismis        4    100 gm

4   5                        24 Mantra Organic Ajwain        5    100 gm

5   6             24 Mantra Organic Apple Blast Drink        6    250 ml

6   7  24 Mantra Organic Apple Juice 1 Ltr Tetra Pack        7   1000 ml

7   8                   24 Mantra Organic Apple Juice        8    200 ml

8   9                     24 Mantra Organic Assam Tea        9    100 gm


查看完整回答
反对 回复 2021-07-13
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

假设您想用 None 替换 Size Name 值,如果它们是 Product Name 的子字符串


df = pd.DataFrame({

            'Product Name' : ['24 Mantra Ancient Grains Foxtail Millet 500 gm', '24 Mantra Ancient Grains Little Millet 500 gm ', '24 Mantra Naturals Kismis 100 gm'], 

            'Size ID' : [1, 2, 3],

            'Size Name': ['500 gm', '500 gm', '200 gm']

        })


df['same']= df.apply(lambda x: x['Size Name'] in x['Product Name'], axis = 1)

df['Size Name'] = np.where(df['same'], None, df['Size Name'])

df.drop(columns=['same'], inplace = True)

df


  Product Name                                Size ID      Size Name

0   24 Mantra Ancient Grains Foxtail Millet 500 gm  1              None

1   24 Mantra Ancient Grains Little Millet 500 gm   2              None

2   24 Mantra Naturals Kismis 100 gm                3              200 gm


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信