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

如何将DataFrame列值匹配嵌套列表元素并累加对应列表值?

高效计算资产总价方案

步骤1:构建资产-价格映射字典

先把嵌套的assets和price转换成扁平化的字典,后续查找价格的效率为O(1),远快于遍历嵌套结构:

# 生成资产到价格的映射字典
price_map = {}
for asset_group, price_group in zip(assets, price):
    for sub_assets, sub_prices in zip(asset_group, price_group):
        for name, p in zip(sub_assets, sub_prices):
            price_map[name] = p

步骤2:计算每行总价

方案一:简洁版(适用于中小规模数据)

利用apply快速完成逐行映射求和:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'Car': ['BMW', 'Ferrari'],
    'Bike': ['Ducati', 'Honda'],
    'Phone': ['Apple', 'Oppo']
})

# 生成总价列
df['Total_Cost'] = df.apply(lambda row: sum(price_map[item] for item in row), axis=1)

方案二:全向量化版(适用于大规模数据)

彻底规避逐行循环,用replace批量转换价格后求和,效率更高:

# 批量替换为价格后按行求和
df['Total_Cost'] = df.replace(price_map).sum(axis=1)

最终输出结果:

Car    Bike  Phone  Total_Cost
0      BMW  Ducati  Apple      560060
1  Ferrari   Honda   Oppo      872240

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:25:59