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

如何用字典推导式根据DataFrame列中的键计算字典值总和?

计算DataFrame匹配键的字典值总和

方法一:简洁版(生成器直接求和)

import pandas as pd

Er = {'A':3,'B':5,'C':7,'D':6}
df = pd.DataFrame({'r': ['A', 'B', 'D']})

# 直接筛选匹配键对应的值并求和
total = sum(v for k, v in Er.items() if k in df['r'].values)
print(total)  # 输出 14

方法二:显式用字典推导式构造匹配集合

如果严格要求先通过字典推导式生成匹配的键值对,再求和:

import pandas as pd

Er = {'A':3,'B':5,'C':7,'D':6}
df = pd.DataFrame({'r': ['A', 'B', 'D']})

# 用字典推导式筛选出df中存在的键值对
matched_dict = {k: v for k, v in Er.items() if k in df['r'].values}
# 对筛选后的值求和
total = sum(matched_dict.values())
print(total)  # 输出 14

大数据集优化方案

当DataFrame的r列数据量较大时,把列值转成集合可以大幅提升键的存在性判断速度:

import pandas as pd

Er = {'A':3,'B':5,'C':7,'D':6}
df = pd.DataFrame({'r': ['A', 'B', 'D']})

# 转集合加速判断
r_key_set = set(df['r'])
matched_dict = {k: v for k, v in Er.items() if k in r_key_set}
total = sum(matched_dict.values())
print(total)  # 输出 14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:52:05