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

如何为DataFrame添加多值列并按值数量重复对应行?

解决方案

步骤1:整理数据为字典

先把按名称分类的对象列表整理成字典,方便根据名字快速匹配对应的物品:

picks_dict = {
    'Jimmy': ['chair','table','pencil'],
    'Charles': ['smartphone','cake'],
    'John': ['clock','paper']
}

步骤2:初始化原始DataFrame

假设你的原始DataFrame是用pandas创建的,代码如下:

import pandas as pd

df = pd.DataFrame({
    'id': [1, 2, 3],
    'name': ['Jimmy', 'Charles', 'John']
})

步骤3:用循环生成目标结果

通过两层循环遍历原始数据和对应物品列表,构建结果记录后转成新的DataFrame:

# 初始化空列表存储结果行
result_rows = []

# 遍历原始DataFrame的每一行
for _, row in df.iterrows():
    user_id = row['id']
    user_name = row['name']
    # 获取当前用户的所有物品
    items = picks_dict[user_name]
    # 为每个物品生成一条对应记录
    for item in items:
        result_rows.append({
            'id': user_id,
            'name': user_name,
            'picks': item
        })

# 转换为目标DataFrame
result_df = pd.DataFrame(result_rows)
print(result_df)

执行后得到的结果即为你需要的展开表格:

idnamepicks
1Jimmychair
1Jimmytable
1Jimmypencil
2Charlessmartphone
2Charlescake
3Johnclock
3Johnpaper

内容的提问来源于stack exchange,提问作者Jimmy Auris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:54:16