【发布时间】:2020-06-23 01:42:17
【问题描述】:
我有 3 列的数据框。 A 列包含许多产品的标题,B 列包含所有品牌名称,C 列包含所有产品的型号/系列。 A 列有 +2000 行,B 列有大约 50 行,C 列有大约 200 行。我想创建一个新的 D 列,用于分类 A 列中的标题是否包括品牌、型号或通用
我的数据框示例和 D 列中的预期结果
Column A Column B Column C Column D
Running shoes Nike Airmax 2 Generic
Nike airmax 2 Adidas All stars Model/series
Airmax 2 Converse Ultraboost Model/series
Nike Shoes Puma Questar Brand
如果 A 列中的一行包含品牌和型号,我希望 D 列将该行归类为型号/系列。 A 列中无法与品牌或型号/系列匹配的所有行都应归类为通用。
我开始尝试这个:
df['Column D'] = df.apply(lambda x: x.Column_b in x.Column_a, axis=1)
这里出现错误,因为 B 列的行数比 A 列少很多。
然后我想知道循环是否是正确的方法,或者我是否需要做一个正则表达式。
任何有关如何完成获得所需 D 列的帮助,我们将不胜感激。
【问题讨论】:
-
你能解释一下
Nike airmax 2行的输出吗?你是如何在输出中得到Model/series的? -
我是从 C 列得到的。所以我想检查 A 列是否包含我在 B 列中获得的任何品牌或我在 C 列中获得的任何型号/系列。如果一行包含品牌和型号/系列我希望 D 列中的匹配行是“型号/系列”