python - 如果列字符串值是另一列的子字符串,如何替换它
问题描述
如何使用另一列替换一列的部分字符串值。
我的数据集是:
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
字符串中删除大小名称字忽略大小写,否则无需采取任何行动。
解决方案
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
推荐阅读
- mongodb - Quarkus中如何清除测试环境TestContainer
- javascript - Typescript 中的 Promise 函数“类型 void 不可分配……”
- arrays - MongoDB - 从对象数组中检索对象数组。使用猫鼬
- scala - Flink:找不到类型信息类型的证据参数的隐式值
- excel - 使用 Vlookup 从两个工作表的公共列中获取多个匹配的行
- node.js - updating and validating multiple files from different fields uploded with multer
- javascript - Can't figure out how to close modal by clicking outside window
- angular - 如何返回一个带有回调值的 observable?
- arduino - SPI Arduino Interface with Absolute Encoder
- firebase - Flutter FCM how to remove the token when user uninstall the app