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

在Pandas中筛选满足发起者收款条件的分组交易数据

解决外汇交易数据分组筛选问题

需求说明

我们需要从外汇交易数据中筛选出符合以下条件的交易组:向exchange发送USD的发起者,必须在同一transaction的to列中存在对应收款记录。不符合条件的交易组(发起者未收到对应款项的)需全部剔除。

原始数据

transaction  from      to      currency
1             A    exchange      USD
1          exchange    A         Euro
1             B        C         Euro
2             C    exchange      USD
2             B        D         Euro
2             A        G         Euro
3             F    exchange      USD
3             D        A         Euro
3             B        F         Euro
4             R    exchange      USD
4             A        D         Euro
4             B        Q         Euro

实现步骤及代码

使用Pandas的groupby方法完成分组验证与筛选,具体代码如下:

import pandas as pd

# 加载原始数据
data = {
    'transaction': [1,1,1,2,2,2,3,3,3,4,4,4],
    'from': ['A', 'exchange', 'B', 'C', 'B', 'A', 'F', 'D', 'B', 'R', 'A', 'B'],
    'to': ['exchange', 'A', 'C', 'exchange', 'D', 'G', 'exchange', 'A', 'F', 'exchange', 'D', 'Q'],
    'currency': ['USD', 'Euro', 'Euro', 'USD', 'Euro', 'Euro', 'USD', 'Euro', 'Euro', 'USD', 'Euro', 'Euro']
}
df = pd.DataFrame(data)

# 定义分组验证逻辑
def check_valid_group(group):
    # 提取当前组内向exchange发送USD的发起者
    senders = group[(group['to'] == 'exchange') & (group['currency'] == 'USD')]['from'].tolist()
    # 获取当前组内所有收款方
    all_recipients = group['to'].tolist()
    # 验证所有发起者都在收款方列表中
    return all(sender in all_recipients for sender in senders)

# 筛选符合条件的交易组
valid_transactions = df.groupby('transaction').filter(check_valid_group)

# 输出结果
print(valid_transactions)

代码解释

  • 数据加载:将原始交易数据转换为Pandas DataFrame格式,方便后续处理。
  • 分组验证:针对每个交易组,先定位所有向exchange发送USD的发起者,再检查这些发起者是否都出现在该组的收款方(to列)中。
  • 筛选合并:通过groupby.filter()直接保留验证通过的分组,自动合并为最终的结果DataFrame。

最终结果

运行代码后得到的符合要求的DataFrame如下:

transaction  from      to      currency
0             A    exchange      USD
1          exchange    A         Euro
6             F    exchange      USD
8             B        F         Euro

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:37:08