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

如何从列表类型列提取数据并在另一DataFrame中生成新列

从列表列提取数据生成DataFrame新列的解决方法

参考数据

先把源数据整理成结构化表格:

ProductPriceQuantityGroup
Tv2011
Car30014
Bike4022
Laptop8013
PS49012

具体实现(以pandas为例)

假设你有一个存储对应值的列表/映射关系(比如Group字段对应的类别列表),下面是两种常见的提取生成新列的方式:

场景1:用字典映射对应关系

如果存储值是键值对形式(比如Group编号对应类别名称),直接用map方法快速生成新列:

import pandas as pd

# 构建源DataFrame
data = {
    'Product': ['Tv', 'Car', 'Bike', 'Laptop', 'PS4'],
    'Price': [20, 300, 40, 80, 90],
    'Quantity': [1, 1, 2, 1, 1],
    'Group': [1, 4, 2, 3, 2]
}
df = pd.DataFrame(data)

# 存储Group对应的类别映射
group_mapping = {1: '家电', 2: '出行', 3: '数码', 4: '代步'}

# 生成新列并添加到原DataFrame
df['Category'] = df['Group'].map(group_mapping)

# 若需要单独生成新的DataFrame
new_df = df[['Product', 'Category']].copy()

执行后,新DataFramenew_df的内容如下:

ProductCategory
Tv家电
Car代步
Bike出行
Laptop数码
PS4出行

场景2:用列表索引对应关系

如果存储值是纯列表形式,Group值对应列表的索引(需注意索引偏移),用apply方法提取:

import pandas as pd

# 源DataFrame同上
df = pd.DataFrame(data)

# 存储类别的列表,索引0对应Group1,索引1对应Group2,以此类推
group_list = ['家电', '出行', '数码', '代步']

# 通过索引匹配生成新列
df['Category'] = df['Group'].apply(lambda x: group_list[x-1])

这个方法和场景1的输出结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:25:20