首页 > 解决方案 > 如果列字符串值是另一列的子字符串,如何替换它

问题描述

如何使用另一列替换一列的部分字符串值。

我的数据集是:

ID          Product Name                            Size ID    Size Name
1   24 Mantra Ancient Grains Foxtail Millet 500 gm      1       500 gm
2   24 Mantra Ancient Grains Little Millet 500 gm       2       500 gm
3   24 Mantra Naturals Almonds 100 gm                   3       100 gm
4   24 Mantra Naturals Kismis 100 gm                    4       100 gm
5   24 Mantra Organic Ajwain 100 gm                     5       100 gm
6   24 Mantra Organic Apple Blast Drink 250 ml          6       250 ml
7   24 Mantra Organic Apple Juice 1 Ltr Tetra Pack      7       1000 ml
8   24 Mantra Organic Apple Juice 200 ml                8       200 ml
9   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字符串中删除大小名称字忽略大小写,否则无需采取任何行动。

标签: pythonpandasdata-science

解决方案


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

推荐阅读