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

基于数组值筛选字典:提取IL州交易的transaction_dt方法咨询

嘿,我来帮你搞定这个问题!既然你已经会用Pandas处理这类筛选,那转到字典操作其实思路是相通的——核心都是遍历+条件判断,或者利用数组的批量筛选逻辑。下面我分两种最常见的字典结构来给你演示:

情况1:字典中每个键对应单条交易(比如交易ID为键,交易详情为值)

这种结构是把每条交易作为字典的一个值,键可能是交易ID之类的唯一标识,示例如下:

transactions = {
    "txn_001": {"state": "IL", "transaction_dt": "2024-01-05"},
    "txn_002": {"state": "NY", "transaction_dt": "2024-01-06"},
    "txn_003": {"state": "IL", "transaction_dt": "2024-01-07"}
}

要提取IL州的交易日期,用列表推导式就能轻松搞定:

# 遍历所有交易详情,筛选state为IL的,提取日期
il_transaction_dates = [txn["transaction_dt"] for txn in transactions.values() if txn["state"] == "IL"]

执行后il_transaction_dates的结果就是:['2024-01-05', '2024-01-07']

情况2:字典的键对应数组/列表(类似Pandas的列结构)

这种结构是把每个字段(比如state、transaction_dt)作为键,对应的值是包含所有交易该字段内容的数组/列表,示例如下:

transactions = {
    "state": ["IL", "NY", "IL", "CA"],
    "transaction_dt": ["2024-01-05", "2024-01-06", "2024-01-07", "2024-01-08"]
}

这里可以用两种方式筛选:

原生Python方法(轻量数据)

用zip把state和日期字段配对,再做条件筛选:

il_transaction_dates = [dt for state, dt in zip(transactions["state"], transactions["transaction_dt"]) if state == "IL"]

Numpy方法(大数据量更高效)

如果你处理的交易数据量很大,用numpy的布尔索引会更高效,逻辑和你熟悉的Pandas几乎一致:

import numpy as np

# 把列表转成numpy数组
states_array = np.array(transactions["state"])
dates_array = np.array(transactions["transaction_dt"])

# 用布尔索引筛选IL对应的日期,再转回列表
il_transaction_dates = dates_array[states_array == "IL"].tolist()

两种方法得到的结果都是:['2024-01-05', '2024-01-07']

如果你的字典结构更复杂(比如嵌套多层),只需要在遍历或索引的时候多取几层键就行,核心逻辑还是先定位到需要判断的字段和目标字段,再做条件筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:05:09