You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建非列表型also_view_brand列,实现also_view与brand的映射?

解决方案

我们可以用Pandas快速实现这个需求,具体步骤如下:

1. 构建ASIN到品牌的映射字典

先从数据中提取asin和brand的对应关系,生成一个字典用于快速查询:

import pandas as pd

# 构造你的示例数据
data = {
    'asin': ['B0001', 'B0004', 'B0002', 'B0003'],
    'brand': ['Apple', 'Samsung', 'OnePlus', 'Motorola'],
    'also_view': [[], ['B0001', 'B0002', 'B0003'], ['B0001', 'B0004'], ['B0002', 'B0004']]
}
df = pd.DataFrame(data)

# 创建ASIN到品牌的映射字典
asin_brand_map = df.set_index('asin')['brand'].to_dict()

2. 编写处理函数生成品牌字符串

定义一个函数,遍历also_view中的ASIN,替换为对应的品牌,再拼接成非列表形式的字符串(这里用逗号分隔,你可以根据需求调整分隔符):

def map_asin_to_brand(asin_list):
    # 过滤掉映射字典中不存在的ASIN(比如示例里的B00002)
    matched_brands = [asin_brand_map[asin] for asin in asin_list if asin in asin_brand_map]
    return ', '.join(matched_brands)

3. 生成新列

用apply方法将函数作用到also_view列,生成目标列also_view_brand:

df['also_view_brand'] = df['also_view'].apply(map_asin_to_brand)

最终结果

处理后的数据表如下:

asinbrandalso_viewalso_view_brand
B0001Apple[]
B0004Samsung[B0001, B0002, B0003]Apple, OnePlus, Motorola
B0002OnePlus[B0001, B0004]Apple, Samsung
B0003Motorola[B0002, B0004]OnePlus, Samsung

内容的提问来源于stack exchange,提问作者Purnima Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:25:17