Pandas 使用np.where或替代方法比较Nan值是正确的
我想匹配两列,如果它们都是真的。我需要从一个非常大的数据集中删除子集 我遇到了两个问题:Pandas 使用np.where或替代方法比较Nan值是正确的,pandas,numpy,Pandas,Numpy,我想匹配两列,如果它们都是真的。我需要从一个非常大的数据集中删除子集 我遇到了两个问题: 当rowA.exprityDate=NaN和rowB.exprityDate=NaN时,我的条件返回false。我相信这是因为NaN是一种特殊情况。这有什么办法吗。我的匹配条件状态如下: 有没有办法进行交叉匹配条件?rowA.baseCptyId[0]==rowB.extCptyId[1]和rowA.extCptyId[1]==rowB.extCptyId[0]…使用下表会更清楚一些,其中前两行的匹配列为F
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
让我们试试这个逻辑,它利用了NaN的优势!=南认为这是真的
df['Matched']=(df.rowA == df.rowB) | ((df.rowA != df.rowA) & (df.rowB != df.rowB))
输出:
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 True
settlementDate 2020-06-29 2020-06-29 True
rate 0.03375 0.03375 True
spread NaN NaN True
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
让我们试试这个逻辑,它利用了NaN的优势!=南认为这是真的
df['Matched']=(df.rowA == df.rowB) | ((df.rowA != df.rowA) & (df.rowB != df.rowB))
输出:
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 True
settlementDate 2020-06-29 2020-06-29 True
rate 0.03375 0.03375 True
spread NaN NaN True
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
可能的重复可能的重复