【发布时间】:2017-10-05 13:16:38
【问题描述】:
我想匹配两列,如果它们都是 True。我需要从一个非常大的数据集中删除子集。
我遇到了 2 个问题:
- 当 rowA.exprityDate = NaN 且 rowB.exprityDate = NaN 时,我的条件返回 false。我相信这是因为 NaN 是一个特殊的条件。有没有办法解决。我的匹配条件如下:
- 有没有办法进行交叉匹配条件? rowA.baseCptyId[0] == rowB.extCptyId[1] 和 rowA.extcptyId[1] == RowB.extcptyID[0]...使用下表更清楚一点,其中第一个匹配列为 False两行。
这是我正在使用的匹配条件:
combine_series = pd.DataFrame(dict(rowA = rowA, rowB = rowB))
combine_series['Matched'] = np.where(combine_series['rowA'] == combine_series['rowB'], True, False)
这是生成的匹配列
rowA rowB Matched
baseCptyID 2231200 5900 False
extCptyID 5900 2231200 False
notional 3.4e+07 3.4e+07 True
startDate 2015-05-29 2015-05-29 True
expiryDate NaN NaN False
settlementDate 2020-06-29 2020-06-29 True
rate 0.03375 0.03375 True
spread NaN NaN False
paymentFreq PA PA True
resetFreq PA PA True
modelUsed FixedLeg FixedLeg True
PayoutCCY AUD AUD True
DayCountConv ACT/ACT ICMA ACT/ACT ICMA True
join_column 2231200 2231200 True
【问题讨论】: