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

如何基于字典键值对为DataFrame新增关联account_id列

解决方案

要实现根据account_number匹配对应account_id并添加新列的需求,只需两步即可完成,操作简单且适合新手:

步骤1:创建快速查找字典

先把你的acc_details列表转换成以account_number为键、account_id为值的字典,这样能快速完成匹配:

acc_lookup = {item['account_number']: item['account_id'] for item in acc_details}

步骤2:为DataFrame添加新列

利用pandas的map()方法,对DataFrame中的account_number列进行映射,不存在的匹配项会自动填充为NaN:

df['account_id'] = df['account_number'].map(acc_lookup)

完整示例

下面是包含测试数据的完整代码,你可以直接运行验证效果:

import pandas as pd

# 你的账户详情列表
acc_details = [{"account_number":100, "account_id":32}, {"account_number":32, "account_id":121},{"account_number":232, "account_id":12}, {"account_number":423, "account_id":56}]

# 模拟你的DataFrame数据
data = {
    'transaction_value': [-2600, -21510, -83460, -2336, -65000, 1000],
    'account_number': [6827, 6830, 6825, 32, 423, 100]
}
df = pd.DataFrame(data)

# 创建查找字典
acc_lookup = {item['account_number']: item['account_id'] for item in acc_details}

# 添加account_id列
df['account_id'] = df['account_number'].map(acc_lookup)

print(df)

运行结果:

transaction_value  account_number  account_id
0              -2600            6827         NaN
1             -21510            6830         NaN
2             -83460            6825         NaN
3              -2336              32       121.0
4             -65000             423        56.0
5               1000             100        32.0

可以看到,只有在acc_details中存在的account_number才会对应填充account_id,其余项保持为NaN,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:15:48