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

Python Pandas dataframe按列表元素匹配累计求和生成新列

解决方案

实现思路

  1. 先把存储列表的Column1拆分为多行,统计每个元素对应所有行的Column2值总和,生成元素-总和映射关系
  2. 遍历每行的Column1列表,将列表内所有元素对应的总和相加,得到Column3

完整代码

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'Column1': [['a','b','c','d'], ['a','f','g'], ['b','c'], ['a','c','d']],
    'Column2': [4, 3, 6, 5]
})

# 第一步:计算每个元素对应的Column2总和
element_total = df.explode('Column1').groupby('Column1')['Column2'].sum()

# 第二步:计算每行的Column3
df['Column3'] = df['Column1'].apply(lambda x: sum(element_total[item] for item in x))

print(df)

输出结果

Column1  Column2  Column3
0  [a, b, c, d]        4       46
1     [a, f, g]        3       18
2        [b, c]        6       25
3     [a, c, d]        5       36

注:你问题描述里给出的预期结果存在手动计算误差,上述输出是严格按照你描述的规则计算得到的正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:15:05