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

如何用Pandas map函数结合国家与年龄映射多字典计算零花钱

可以仅用map函数实现,无需循环

当然可以不用循环,直接用map函数结合字段配对来实现。核心思路是把国家和年龄两个字段打包成元组,再通过map对每个元组匹配对应的零花钱字典。

举个具体实现的例子:

首先定义不同国家的年龄-零花钱映射规则:

# 各国年龄对应的零花钱字典
allowance_rules = {
    "China": {6: 10, 7: 12, 8: 15, 9: 20},
    "US": {6: 5, 7: 7, 8: 10, 9: 13},
    "UK": {6: 4, 7: 6, 8: 9, 9: 12}
}

假设你的DataFramedf包含country(国家)和age(年龄)两列,直接用map处理打包后的字段对:

# 用zip把country和age列打包成元组,再通过map匹配对应零花钱
df['allowance'] = list(map(
    lambda item: allowance_rules[item[0]][item[1]],
    zip(df['country'], df['age'])
))

如果要避免因国家不存在或年龄不在规则内导致报错,可以用get方法设置默认值:

df['allowance'] = list(map(
    lambda item: allowance_rules.get(item[0], {}).get(item[1], 0),
    zip(df['country'], df['age'])
))

这里如果国家不在规则里,或者对应年龄没有设置零花钱,会返回默认值0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:02:04