感谢您的帮助。
我有两个数据集:
models = pd.DataFrame({"manufacturer":['Nokia', 'Samsung', 'Motorola', 'Nokia', 'Alcatel', 'Nokia 5'],
"model":['3310', 'S4', 'Moto G', 'N1', 'Pixy', 'Nokia 5']})
data = pd.DataFrame({"title":["Brand New Nokia 3310", "Old Samsung S4", "Cool Motorola Moto G", 'New Alcatel', 'Old Nokia 5'],
"manufacturer":['Nokia', "Samsung", "Motorola", 'Alcatel', 'Nokia'],
"model":["placeholder", "placeholder", "placeholder", "placeholder", "placeholder"]})
我需要根据条件来填充data ['model']中的模型值,条件是标题中的字符串包含模型字符串,否则该列中的值应保留占位符。
我试图通过列表理解来做到这一点,但是它不起作用。
mod = models["model"].tolist()
title = data['title']
data['model'] = pd.Series([m for m in mod for t in title if m in]
我也尝试使用pandas方法“ str.contains”:
for m in mod:
if title.str.contains(m):
data['model'] = m
但是这也没有按我预期的那样工作。有办法吗? 预先感谢。
答案 0 :(得分:1)
mod = models["model"]
data["model"] = data["title"].map(lambda s: next((m for m in mod if m in s), "placeholder"))