Python 使用dataframe通过查找字典并基于键进行比较来筛选行
我的交易记录数据集包含Python 使用dataframe通过查找字典并基于键进行比较来筛选行,python,pandas,Python,Pandas,我的交易记录数据集包含类型,货币1,货币2,以及天数列。我想根据以下标准筛选应排除的记录: 如果类型等于'FO',则应应用以下逻辑: 如果货币1等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,则货币2等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,且天数小于或等于2,则应排除交易 如果货币1或货币2不等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,并且天小于或等于货币对的结算期或七个营业日(以较早者为准),则应排除交易 我还有一本字典,里面有每种货币的[结算]值。获取
类型
,货币1
,货币2
,以及天数
列。我想根据以下标准筛选应排除的记录:
如果类型
等于'FO',则应应用以下逻辑:
- 如果
等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,则货币1
等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,且货币2
天数小于或等于2,则应排除交易
- 如果
或货币1
不等于“欧元”、“美元”、“日元”、“澳元”或“MXN”,并且货币2
小于或等于货币对的天
结算期或七个营业日(以较早者为准),则应排除交易
[结算]
值。获取结算期的方法如下所示:
- 如果
或货币1
等于“美元”,则结算期应等于货币2
的[结算]
最小值
- 如果
或货币1
均不等于“美元”,则结算期应等于货币2
的[结算]
最大值
consolution_dict={'AED':2,'PHP'=1,'AUD'=2,…}
这些逻辑相互嵌入,我不知道如何使用pandas应用逻辑过滤排除的交易。我非常感谢你在这方面的帮助。谢谢。您可以使用numpy.where()在数据帧中创建条件列。这里有一个例子:@DSteman非常感谢您提供的方向和条件列。一个简单的问题:在编写条件列的条件时,我们如何能够查找字典并比较查找结果?您可以添加一个额外的列,在其中根据该字典将货币转换为数字。然后在您的条件中也使用该列。